说句闲话:研究 CCF 本质的最好方法是
看看它的大样例
三个样例都过了,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;
}
美的集团公司福利 819人发布