社区讨论
#3 TLE,求条,必关
P13744[NWERC 2024] Flowing Fountain参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mk9hhw44
- 此快照首次捕获于
- 2026/01/11 16:40 上个月
- 此快照最后确认于
- 2026/01/15 16:45 上个月
快读快写我都用上了,还TLE
CPP#include<bits/stdc++.h>
using namespace std;
int z[300010],x[300010],c[300010];
int read(){
int q=0,w=1;char e=getchar();
while(e<'0'||e>'9'){if(e=='-')w=-1;e=getchar();}
while('0'<=e&&e<='9'){q=q*10+e-'0';e=getchar();}
return q*w;
}
void write(int v){
if(v<0){putchar('-');v=-v;}
if(v>9)write(v/10);
putchar(v%10+'0');
}
void m(int l,int k,int j){
int a;
if(c[l]!=0){
a=c[l];
}else{
a=l+1;
while(a<=j&&z[a]<=z[l]){
a++;
}
c[l]=a;
}
if(z[l]-x[l]>=k){
x[l]+=k;
return ;
}
k-=z[l]-x[l];
x[l]=z[l];
if(a>j||k<=0){
return ;
}
m(a,k,j);
}
int main(){
int e,r,q=read(),w=read();
char p;
for(int i=1;i<=300009;i++){
x[i]=0;
c[i]=0;
}
for(int a=1;a<=q;a++)
z[a]=read();
for(int a=1;a<=w;a++){
scanf("%c",&p);
while(p==' '||p=='\n'){
scanf("%c",&p);
}
if(p=='?'){
e=read();
write(x[e]);
printf("\n");
}
else{
e=read();
r=read();
m(e,r,q);
}
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...