社区讨论
谁说pascal只能80,要换c++的
P1198[JSOI2008] 最大数参与者 6已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mi4g6ogz
- 此快照首次捕获于
- 2025/11/18 18:45 4 个月前
- 此快照最后确认于
- 2025/11/18 18:45 4 个月前
CPP
var
a,b:array[0..200000] of longint;
m,d,i,p,t,s,f,le,ri,u:longint;
k:char;
w:dword;
begin
readln(m,d);
s:=0;
f:=0;
a[0]:=maxlongint;
for i:=1 to m do begin
read(k);
readln(p);
if k='A' then begin
inc(s);
inc(f);
w:=t;
w:=w+p;
if w<=maxlongint then a[s]:=w mod d
else a[s]:=(-((not w)+1)) mod d;
b[s]:=f;
while a[s]>=a[s-1] do begin
dec(s);
a[s]:=a[s+1];
b[s]:=b[s+1];
end;
end
else begin
le:=0;
ri:=s;
repeat
u:=(le+ri) shr 1;
if b[u]<f-p+1 then le:=u
else ri:=u;
until ri-le=1;
t:=a[ri];
writeln(t);
end;
end;
end.
回复
共 5 条回复,欢迎继续交流。
正在加载回复...