結果
| 問題 |
No.3094 Stapler
|
| コンテスト | |
| ユーザー |
sasa8uyauya
|
| 提出日時 | 2025-04-12 15:21:46 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,648 bytes |
| コンパイル時間 | 154 ms |
| コンパイル使用メモリ | 82,836 KB |
| 実行使用メモリ | 100,308 KB |
| 最終ジャッジ日時 | 2025-10-23 22:37:11 |
| 合計ジャッジ時間 | 127,934 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 41 WA * 1 TLE * 30 |
ソースコード
n=int(input())
Q=int(input())
que=[]
for _ in range(Q):
que+=[list(map(int,input().split()+["0","0"]))[:3]]
def op(x,y):
if x[0]<y[0]:
return x
if y[0]<x[0]:
return y
return (x[0],x[1]+y[1])
B=1000
st1=[0]*B*B
st2=[B]*B
lt=[0]*B
X=10**10
for t,p1,p2 in que:
l,r=0,n-2
if t==1:
l,r=p1-1,p2-1
if l==r:
continue
r-=1
v=1
if t==2:
_,p3,p4=que[p1-1]
l,r=p3-1,p4-1
if l==r:
continue
r-=1
v=-1
yl=l//B
yr=r//B
for y in [yl,yr]:
for i in range(y*B,y*B+B):
st1[i]+=lt[y]
lt[y]=0
if t==3:
a=(X,0)
if yl==yr:
for i in range(l,r+1):
a=op(a,(st1[i],1))
else:
for i in range(l,yl*B+B):
a=op(a,(st1[i],1))
for i in range(yl+1,yr):
a=op(a,(st2[i]//(B+1),st2[i]%(B+1)))
for i in range(yr*B,r+1):
a=op(a,(st1[i],1))
print(a[1]+1 if a[0]==0 else 0)
continue
if yl==yr:
y=yl
for i in range(l,r+1):
if st2[y]//(B+1)==st1[i]:
st2[y]-=1
st1[i]+=v
if st2[y]//(B+1)==st1[i]:
st2[y]+=1
if st2[y]//(B+1)>st1[i]:
st2[y]=st1[i]*(B+1)+1
else:
for i in range(l,yl*B+B):
y=i//B
if st2[y]//(B+1)==st1[i]:
st2[y]-=1
st1[i]+=v
if st2[y]//(B+1)==st1[i]:
st2[y]+=1
if st2[y]//(B+1)>st1[i]:
st2[y]=st1[i]*(B+1)+1
for i in range(yl+1,yr):
st2[i]+=v*(B+1)
lt[i]+=v
for i in range(yr*B,r+1):
y=i//B
if st2[y]//(B+1)==st1[i]:
st2[y]-=1
st1[i]+=v
if st2[y]//(B+1)==st1[i]:
st2[y]+=1
if st2[y]//(B+1)>st1[i]:
st2[y]=st1[i]*(B+1)+1
sasa8uyauya