社区讨论

T4 95pts求教

题目总版参与者 4已保存回复 14

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
14 条
当前快照
1 份
快照标识符
@lo1nu4xw
此快照首次捕获于
2023/10/23 00:05
2 年前
此快照最后确认于
2023/11/03 00:47
2 年前
查看原帖
记录 别问,问就是大号被禁言了。
CPP
#include<bits/stdc++.h>
#define ll long long
#define N 200200
using namespace std;
ll c,q,re,op,p,s,x,j,cnt=1,t[N],sum[N],maxx[N];
char C;
ll R(){
	re=0;
	C=getchar();
	while(C<'0'||C>'9'){
		C=getchar();
	}
	while(C>='0'&&C<='9'){
		re=re*10+C-'0';
		C=getchar();
	}
	return re;
}
void W(ll x){
	if(x/10){
		W(x/10);
	}
	putchar(x%10+'0');
}
int main(){
	c=R();
	q=R();
	while(q--){
		op=R();
		if(op!=4)x=R();
		if(op==1){
			t[cnt]=x;
			sum[cnt]=x+sum[cnt-1];
			maxx[cnt]=x;
			j = cnt-1;
			while(j>=0&&maxx[j]<maxx[j+1]){
				maxx[j]=maxx[j+1];j--;
			}
			cnt++;
		}
		if(op==2){
			p+=x;
		}
		if(op==3){
			s=lower_bound(sum+1,sum+cnt-1,p+x)-sum;
			W(p+x-sum[s-1]);
			putchar('\n');
		}
		if(op==4){
			s=lower_bound(sum+1,sum+cnt-1,p)-sum;
			if(t[s]==p)s++;
			W(maxx[s]);
			putchar('\n');
		}
	}
	return 0;
}

回复

14 条回复,欢迎继续交流。

正在加载回复...