Codefoeces 581B Luxurious Houses

要求求出每个数后面的数的最大值比这个数大多少。

#include<cstdio>
#include<iostream>
using namespace std;
#define MAXN 100005
int a[MAXN], n, ans[MAXN];
int main()
{
    scanf("%d", &n);
    for(int i = 1; i <= n; i ++)
        scanf("%d", &a[i]);
    for(int i = n; i > 0; i --)
        ans[i] = max(ans[i+1], a[i+1]);
    for(int i = 1; i <= n; i ++)
        printf("%d ", (ans[i] < a[i]) ? 0 : ans[i] - a[i] + 1);
    return 0;
}

你可能感兴趣的:(codeforces)