坑了许久的热身赛#4G题, 当时貌似是精度有问题
题意是给定A序列, 求满足条件的B序列个数
B序列非严格单调增并且对于对所有i成立:B[i]+B[i+1]=A[i]
可求得B序列相邻两项之差组成的序列C
C随奇偶可分为单调增长项和减小项, 将B[0]初始化为0后依次得到增长项的最大值和减小项的最小值, 两者取整后之差即为序列个数.
注意序列个数不能为负
/*author: birdstorm*/
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cctype>
#include <cstdlib>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <climits>
#include <algorithm>#define MAXN 100005
#define N 105
#define inf 1.0e20
#define eps 1.0e-10
#define MOD 1000000007#define For(i,m,n) for(int i=(m);i<(n);i++)
#define vecfor(iter,a) for(vector<int>::iterator iter=a.begin();iter!=a.end();iter++)
#define rep(i,m,n) for(int i=(m);i<=(n);i++)
#define LL long longusing namespace std;