結果
問題 |
No.3094 Stapler
|
ユーザー |
|
提出日時 | 2025-04-05 01:22:19 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,934 bytes |
コンパイル時間 | 187 ms |
コンパイル使用メモリ | 82,224 KB |
実行使用メモリ | 90,356 KB |
最終ジャッジ日時 | 2025-06-20 02:29:52 |
合計ジャッジ時間 | 51,134 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 71 RE * 1 |
ソースコード
N=int(input()) block_size=1000 block_covered=[0]*1001 block_zerocount=[0]*1001 block_detail=[[0]*block_size for i in range(1001)] def calc_block(i): return i//block_size, i%block_size for i in range(N): block_zerocount[calc_block(i)[0]]+=1 Query_memo={} Q=int(input()) for i in range(1,Q+1): q=list(map(int,input().split())) if q[0]==1: L=q[1]-1 R=q[2]-1 lb, li=calc_block(L) rb, ri=calc_block(R) Query_memo[i]=(L,R) if lb==rb: for j in range(li,ri): block_detail[lb][j]+=1 if block_detail[lb][j]==1: block_zerocount[lb]-=1 else: for j in range(li,block_size): block_detail[lb][j]+=1 if block_detail[lb][j]==1: block_zerocount[lb]-=1 for j in range(ri): block_detail[rb][j]+=1 if block_detail[rb][j]==1: block_zerocount[rb]-=1 for b in range(lb+1, rb): block_covered[b]+=1 elif q[0]==2: L,R=Query_memo[q[1]] lb, li=calc_block(L) rb, ri=calc_block(R) if lb==rb: for j in range(li,ri): block_detail[lb][j]-=1 if block_detail[lb][j]==0: block_zerocount[lb]+=1 else: for j in range(li,block_size): block_detail[lb][j]-=1 if block_detail[lb][j]==0: block_zerocount[lb]+=1 for j in range(ri): block_detail[rb][j]-=1 if block_detail[rb][j]==0: block_zerocount[rb]+=1 for b in range(lb+1, rb): block_covered[b]-=1 else: ans=0 for j in range(1001): if block_covered[j]: continue ans+=block_zerocount[j] print(ans)