69,371
社区成员
发帖
与我相关
我的任务
分享
#ifndef MAX
#define MAX(a,b) (((a) > (b)) ? (a) : (b))
#endif
long long ftp_(const int n, const int* a, const int* b)
{
long long fp[3] = { a[0], b[0], 0 }; // a, b, 0
for (int nn = 1; nn < n; nn++)
{
long t0 = MAX(fp[1] + a[nn], fp[2] + a[nn]);
long t1 = MAX(fp[0] + b[nn], fp[2] + b[nn]);
long t2 = MAX(fp[0] + 0, fp[1] + 0);
fp[0] = t0, fp[1] = t1, fp[2] = t2;
}
return MAX(MAX(fp[0], fp[1]), fp[2]);
}