nyoj 356 Jumping Cows

来源:互联网 发布:freehand for mac 编辑:程序博客网 时间:2024/04/29 11:35

题意:给你n个数,找一些数(可以不连续,但顺序不可乱),奇数位置的数+,偶数位置的数-。最后得出的最大结果是?

从前往后搜,交替执行:

(1)找一个比相邻两个数都大的数,+;

(2)找一个比相邻两个数都小的数,-;

#include<stdio.h>#include<string.h>int a[150005];int main(){int n,m,i,j,sum,flag;scanf("%d",&n);while(n--){memset(a,0,sizeof(a));sum=0;scanf("%d",&m);for(i=1;i<=m;i++)scanf("%d",&a[i]);   flag=1;for(i=1;i<=m;i++){if(flag){if(a[i]>=a[i-1]&&a[i]>=a[i+1]){sum+=a[i];flag=0;}}else{if(a[i]<=a[i-1]&&a[i]<=a[i+1]){sum-=a[i];flag=1;}}}   printf("%d\n",sum);}return 0;}