Submission #62309641
Source Code Expand
def query_1(x, y, pigeons_positions, nest_pigeons, num_of_crowded_nests):
current_nest_id = pigeons_positions[x]
# 鳩を移動させる
pigeons_positions[x] = y
# 巣にいる鳩の数を更新する
nest_pigeons[y] += 1
nest_pigeons[current_nest_id] -= 1
# 巣xの鳩の数が負の場合はおかしい
assert nest_pigeons[current_nest_id] >= 0
# 複数羽いる鳩の巣の数を更新する
# 巣yは必ず増えている。2になったらnum_of_crowded_nestsを増やす
# print(f'num_of_crowded_nests: {num_of_crowded_nests}, nest_pigeons[y]: {nest_pigeons[y]}')
if nest_pigeons[y] == 2:
num_of_crowded_nests += 1
# 巣xは必ず減っている。1になったらnum_of_crowded_nestを減らす
# print(f'num_of_crowded_nests: {num_of_crowded_nests}, nest_pigeons[current_nest_id]: {nest_pigeons[current_nest_id]}')
if nest_pigeons[current_nest_id] == 1:
num_of_crowded_nests -= 1
return num_of_crowded_nests
def query_2(nest_pigeons, num_of_crowded_nest):
# print(nest_pigeons)
print(num_of_crowded_nest)
def main(N, Q):
# 各鳩が今どの巣にいるか
pigeons_positions = {}
# 各巣にいる鳩の数
nest_pigeons = {}
# 巣の数
num_of_crowded_nests = 0
for i in range(1, N + 1):
pigeons_positions[i] = i
nest_pigeons[i] = 1
for _ in range(Q):
queries = input().split()
if len(queries) == 3:
_, x, y = queries
x = int(x)
y = int(y)
num_of_crowded_nests = query_1(
x, y, pigeons_positions, nest_pigeons, num_of_crowded_nests
)
# print(f'check side effect: {num_of_crowded_nests}')
else:
query_2(nest_pigeons, num_of_crowded_nests)
N, Q = map(int, input().split())
main(N, Q)
Submission Info
| Submission Time | |
|---|---|
| Task | C - Pigeonhole Query |
| User | mu16 |
| Language | Python (PyPy 3.10-v7.3.12) |
| Score | 300 |
| Code Size | 1919 Byte |
| Status | AC |
| Exec Time | 745 ms |
| Memory | 307056 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 300 / 300 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 57 ms | 76792 KiB |
| 00_sample_01.txt | AC | 56 ms | 76248 KiB |
| 01_test_00.txt | AC | 57 ms | 76760 KiB |
| 01_test_01.txt | AC | 58 ms | 76492 KiB |
| 01_test_02.txt | AC | 68 ms | 80860 KiB |
| 01_test_03.txt | AC | 108 ms | 84676 KiB |
| 01_test_04.txt | AC | 212 ms | 113480 KiB |
| 01_test_05.txt | AC | 304 ms | 83680 KiB |
| 01_test_06.txt | AC | 468 ms | 82808 KiB |
| 01_test_07.txt | AC | 667 ms | 306668 KiB |
| 01_test_08.txt | AC | 466 ms | 83976 KiB |
| 01_test_09.txt | AC | 730 ms | 306772 KiB |
| 01_test_10.txt | AC | 442 ms | 83432 KiB |
| 01_test_11.txt | AC | 735 ms | 307052 KiB |
| 01_test_12.txt | AC | 420 ms | 83924 KiB |
| 01_test_13.txt | AC | 740 ms | 306788 KiB |
| 01_test_14.txt | AC | 402 ms | 83912 KiB |
| 01_test_15.txt | AC | 745 ms | 306884 KiB |
| 01_test_16.txt | AC | 364 ms | 84452 KiB |
| 01_test_17.txt | AC | 743 ms | 306704 KiB |
| 01_test_18.txt | AC | 326 ms | 83624 KiB |
| 01_test_19.txt | AC | 721 ms | 306888 KiB |
| 01_test_20.txt | AC | 302 ms | 83992 KiB |
| 01_test_21.txt | AC | 713 ms | 306764 KiB |
| 01_test_22.txt | AC | 263 ms | 83772 KiB |
| 01_test_23.txt | AC | 702 ms | 306484 KiB |
| 01_test_24.txt | AC | 234 ms | 84100 KiB |
| 01_test_25.txt | AC | 689 ms | 306884 KiB |
| 01_test_26.txt | AC | 179 ms | 83308 KiB |
| 01_test_27.txt | AC | 628 ms | 306504 KiB |
| 01_test_28.txt | AC | 361 ms | 83264 KiB |
| 01_test_29.txt | AC | 726 ms | 306468 KiB |
| 01_test_30.txt | AC | 358 ms | 83540 KiB |
| 01_test_31.txt | AC | 721 ms | 306508 KiB |
| 01_test_32.txt | AC | 356 ms | 83396 KiB |
| 01_test_33.txt | AC | 719 ms | 306548 KiB |
| 01_test_34.txt | AC | 720 ms | 306836 KiB |
| 01_test_35.txt | AC | 712 ms | 307056 KiB |
| 01_test_36.txt | AC | 624 ms | 306888 KiB |