您的位置:首页 > 运维架构

Open Credit System UVa 11078

2014-03-10 18:46 387 查看
思路:对于当前要处理的 A[i] 只需要保存A[0] 到 A[i] 之间的最大值,然后减去A[i+1]。

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;
const int maxn = 100010;

int A[maxn];
int n;

int work()
{
int ans = A[0] - A[1];
int maxv = A[0];
for(int i = 1; i < n; i++) {
ans = max(ans, maxv-A[i]);
if(A[i] > maxv) maxv = A[i];
}
return ans;
}

int main()
{
int T;
scanf("%d", &T);
while(T--) {
scanf("%d", &n);
for(int i = 0; i < n; i++) {
scanf("%d", &A[i]);
}
int ans = work();
printf("%d\n", ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: