社区讨论

样例过了,但是一分没有

P1198[JSOI2008] 最大数参与者 1已保存回复 0

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@loc3mti6
此快照首次捕获于
2023/10/30 07:25
2 年前
此快照最后确认于
2023/11/04 13:28
2 年前
查看原帖
CPP
#include<iostream>
#include<cstdio>
#include<string>
#include<stack>
using namespace std;
int a[1000010];
int ans[1000100];
int stk[1000100];
int z=0;
int tem=0;
int t=0;
int main(){
	int m,d;
	cin>>m>>d;
	int pl=0;
	for(int i=1;i<=m;i++){
		char lin;
		cin>>lin;
		if(lin=='A'){
			pl++;
			cin>>a[pl];
			a[pl]+=t;
			a[pl]%=d;
			if(z==0){
				z++;
				stk[z]=pl;
			}
			else{
				while(z!=0&&a[stk[z]]<a[pl]){
					z--;
				}
				z++;
				stk[z]=pl;
			}
		}
		if(lin=='Q'){
			int l;
			cin>>l;
			
			int place=lower_bound(stk+1,stk+pl+1,pl-l+1)-stk;

			t=a[stk[place]];
			tem++;
			ans[tem]=t;
			
		}
	}
	for(int i=1;i<=tem;i++){
		cout<<ans[i]<<endl;
	}
	return 0;
}

回复

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

正在加载回复...