记某次codeforces考试 A. Levko and Array Recovery

来源:互联网 发布:速干毛巾 知乎 编辑:程序博客网 时间:2024/06/06 00:48



是的

写题的时候又傻逼了

看了黄学长(hzw)的代码后才恍然大悟,但是为毛得到的答案过不了样例????

Orz


#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>using namespace std;int f[5005],a[5005],l[5005],r[5005],v[5005],b[5005],N,M;int main(){scanf("%d%d",&N,&M);for (int i=1;i<=N;i++) a[i]=1e8;for (int i=1;i<=M;i++){scanf("%d%d%d%d",&f[i],&l[i],&r[i],&v[i]);}for (int i=1;i<=M;i++){if (f[i]==1){for (int j=l[i];j<=r[i];j++){b[j]+=v[i];}}else {for (int j=l[i];j<=r[i];j++){a[j]=min(a[j],v[i]-b[j]);}}}for (int i=1;i<=N;i++) b[i]=a[i];for (int i=1;i<=M;i++){if(f[i]==1){for (int j=l[i];j<=r[i];j++){b[j]+=v[i];}}else{int mx=-1e8;for (int j=l[i];j<=r[i];j++){mx=max(mx,b[j]);}if (mx!=v[i]) {puts("NO");return 0;}}}puts("YES");for (int i=1;i<=N;i++) printf("%d ",a[i]);return 0;}


0 0
原创粉丝点击