Submission #25580892
Source Code Expand
L,Q=map(int,input().split())
CX=[list(map(int,input().split())) for i in range(Q)]
class UnionFind:
def __init__(self,N):
self.Parent=[-1]*N
self.Length=[-1]*N
def unite(self,m,n):
rm=self.root(m)
rn=self.root(n)
if rm==rn:
return False
else:
if self.size(rm)<self.size(rn):
rm,rn=rn,rm
self.Parent[rm]+=self.Parent[rn]
self.Parent[rn]=rm
self.Length[rm]+=self.Length[rn]
return True
def root(self,n):
if self.Parent[n]<0:
return n
else:
self.Parent[n]=self.root(self.Parent[n])
return self.Parent[n]
def size(self,n):
return -self.Parent[self.root(n)]
def length(self,n):
return self.Length[self.root(n)]
def components(self):
return sum(e<0 for e in self.Parent)
d=[]
for c,x in CX:
if c==1:
d.append(x)
d.sort()
u=UnionFind(len(d)+1)
d=[0]+d+[L]
for i in range(len(d)-1):
u.Length[i]=d[i+1]-d[i]
from bisect import bisect_left
a=[]
for c,x in reversed(CX):
b=bisect_left(d,x)
if c==1:
u.unite(b-1,b)
else:
a.append(u.length(b-1))
print(*reversed(a),sep='\n')
Submission Info
| Submission Time | |
|---|---|
| Task | D - Cutting Woods |
| User | st2d |
| Language | PyPy3 (7.3.0) |
| Score | 400 |
| Code Size | 1288 Byte |
| Status | AC |
| Exec Time | 727 ms |
| Memory | 127616 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_max_random_00.txt, 01_max_random_01.txt, 01_max_random_02.txt, 01_max_random_03.txt, 01_max_random_04.txt, 02_all_1_00.txt, 03_all_2_00.txt, 04_hack_00.txt, 04_hack_01.txt, 04_hack_02.txt, 04_hack_03.txt, 04_hack_04.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 108 ms | 62424 KiB |
| 00_sample_01.txt | AC | 53 ms | 62124 KiB |
| 00_sample_02.txt | AC | 50 ms | 62444 KiB |
| 01_max_random_00.txt | AC | 648 ms | 124940 KiB |
| 01_max_random_01.txt | AC | 650 ms | 126160 KiB |
| 01_max_random_02.txt | AC | 627 ms | 123604 KiB |
| 01_max_random_03.txt | AC | 658 ms | 125780 KiB |
| 01_max_random_04.txt | AC | 679 ms | 124680 KiB |
| 02_all_1_00.txt | AC | 727 ms | 120488 KiB |
| 03_all_2_00.txt | AC | 399 ms | 123092 KiB |
| 04_hack_00.txt | AC | 415 ms | 127616 KiB |
| 04_hack_01.txt | AC | 414 ms | 127616 KiB |
| 04_hack_02.txt | AC | 617 ms | 121708 KiB |
| 04_hack_03.txt | AC | 652 ms | 124680 KiB |
| 04_hack_04.txt | AC | 629 ms | 123812 KiB |