首页 > 代码库 > HDU 4928 Series 2
HDU 4928 Series 2
有了题解以后这题就成了一个模拟题。不过写了好久才把它写对…… Sad
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <algorithm>#include <string>#include <queue>#include <stack>#include <vector>#include <map>#include <set>#include <functional>#include <time.h>using namespace std;typedef __int64 ll;const int INF = 1<<30;const int MAXN = (int) 1e5+55;ll a[MAXN];int n;inline int check(ll A[], int len) { bool INC = true, DEC = true; for (int i = 0; i < len-1; i++) if (A[i+1]>A[i]) INC = false; else if (A[i+1]<A[i]) DEC = false; return INC||DEC;}int solve() { int cur = 0; int l = 0, r = n-1; for (int i = 0; i < n; i++) { while (l<r && a[l]==0) l++; while (l<r && a[r]==0) r--; l = max(0, l-1); r = min(r+1, n-i); if (!check(a+l, r-l)) return i; for (int j = l; j < r; j++) a[j] = a[j+1]-a[j]; r--; } return n;}int main() { #ifdef Phantom01 freopen("HDU4928.txt", "r", stdin); #endif //Phantom01 int T; scanf("%d", &T); while (T--) { scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%I64d", &a[i]); int ans = solve(); if (0==ans) puts("ugly series"); else if (n==ans) puts("nice series"); else printf("%d\n", ans-1); } return 0;}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。