CodeForces - 581B - Luxurious Houses 逆序处理&水

题目链接:
http://codeforces.com/problemset/problem/581/B
B - Luxurious Houses CodeForces - 581B

题目大意:
给一个数列 , 如果这个数比右边最大的数还要大, 那么是符合题意的。 现在要每个数加上一个数 ,使这个更新后的数列是符合题意的 。求每个这个数 。

1e5数据 逆序处理

#include 
using namespace std;
typedef long long ll;
#define mem(s,t) memset(s,t,sizeof(s))
#define D(v) cout<<#v<<" "<
#define inf 0x3f3f3f3f
const int MAXN =1e5+10;
int a[MAXN],ans[MAXN];
int main() {
#ifdef LOCAL
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
#endif
    int n;
    while(~scanf("%d",&n)) {
        mem(a,0);
        mem(ans,0);
        for(int i=0; iscanf("%d",a+i);
        }
        int maxn=0;
        for(int i=n-1; i>=0; i--) {
            if(i==n-1) {
                ans[i]=0;
                maxn=max(maxn,a[i]);
                continue;
            }
            if(maxn==a[i]) {
                ans[i]=1;
            } else if(a[i]>maxn) {
                ans[i]=0;
                maxn=a[i];
            } else {
                ans[i]=maxn-a[i]+1;
            }
        }
        for(int i=0; iif(i)
                printf(" %d",ans[i]);
            else printf("%d",ans[i]);
        }
        puts("");
    }
}

ps.五月份竟然要过去了,回想起来也没做什么事情,前半个月忙于省赛,后面半个月,想起来只有两件事,自己的生日和整个小组连着通宵 3 天赶创新实践结题。生日那天,原本计划了很多,但是最近越来越没心情,干脆就叫了几个朋友撸串。最近心态改变了很多吧,内心颇不平静。至于项目,暑假还要接着干,这个课程在后天 6.2 报告,期末真的事情超级多。
跑题了,忙里偷闲水一了一题。

你可能感兴趣的:(codeforces,水题)