http://poj.org/problem?id=2181
给n个数,找出一个子序列,其规则是:奇数位置+,偶数位置- 。
求这个子序列的最大值。
直接贪心
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int a[150005];
int n;
int ans=0;
bool flag=true;
int main(){
cin >> n;
for (int i=1;i<=n;i++){
cin >> a[i];
}
for (int i=1;i<=n;i++){
if (flag){
if (a[i]>a[i+1]){
ans+=a[i];
flag=0;
}
}
else{
if (a[i]<a[i+1]){
ans-=a[i];
flag=1;
}
}
}
cout << ans << endl;
}