看看它的大样例
三个样例都过了,0 分
现在比赛的样例都这么没水平 & 强度了吗
求大佬捉虫
# include <bits/stdc++.h> # define rr register const int N=200010; struct Node{ int opt,val,st; }a[N]; std::vector <int> canuse[N]; bool use[N]; int n; int ans; inline int read(void){ int res,f=1; char c; while((c=getchar())<'0'||c>'9') if(c=='-')f=-1; res=c-48; while((c=getchar())>='0'&&c<='9') res=res*10+c-48; return res*f; } int main(void){ // freopen("transfer.in","r",stdin); // freopen("transfer.out","w",stdout); n=read(); for(rr int i=1;i<=n;++i){ a[i].opt=read(),a[i].val=read(),a[i].st=read(); } for(rr int i=1;i<=n;++i){ for(rr int j=i+1;a[j].st-a[i].st<=45&&j<=n;++j){ canuse[j].push_back(i); } } for(rr int i=1;i<=n;++i){ if(a[i].opt==0){ ans+=a[i].val; }else{ int siz=canuse[i].si***time=INT_MAX,srat=-1; for(rr int j=0;j<siz;++j){ if(a[i].st-a[canuse[i][j]].st<=45&&a[canuse[i][j]].st<mintime&&!use[canuse[i][j]]&&a[canuse[i][j]].val>=a[i].val){ mintime=a[canuse[i][j]].st,srat=canuse[i][j]; } } if(srat==-1){ ans+=a[i].val; }else{ use[srat]=true; } } } printf("%d",ans); return 0; }
全部评论
(1) 回帖