| Task: | Spiraali |
| Sender: | AnttiE |
| Submission time: | 2021-10-05 17:58:48 +0300 |
| Language: | Python3 (PyPy3) |
| Status: | READY |
| Result: | 35 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 15 |
| #2 | ACCEPTED | 20 |
| #3 | TIME LIMIT EXCEEDED | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.04 s | 1 | details |
| #2 | ACCEPTED | 0.10 s | 2 | details |
| #3 | TIME LIMIT EXCEEDED | -- | 3 | details |
Code
# meni moti nodeen joten python aika
def dist(r1, c1, r2, c2):
return abs(r2 - r1) + abs(c2 - c1)
def solve(size, r, c):
centers = [
(size / 2, 1, 0), # left
(size, size / 2, 1), # bottom
((size / 2) + 1, size, 2), # right
(1, (size / 2) + 1, 3) # top
]
for center in centers:
if dist(center[0], center[1], r, c) <= (size / 2) - 1:
ans = None
if center[2] == 0:
ans = 0
for i in range(c - 1):
ans += (size - 1 - (i * 2)) * 4
ans += r - (c - 1)
elif center[2] == 1:
ans = size - 1
for i in range(size - r):
ans += (size - 1 - (i * 2)) * 4 - 2
ans += c - (size - r)
elif center[2] == 2:
ans = (size - 1) * 2
for i in range(size - c):
ans += (size - 1 - (i * 2)) * 4 - 4
ans += (size - r) - (size - c) + 1
elif center[2] == 3:
ans = (size - 1) * 3
for i in range(r - 1):
ans += (size - 1 - (i * 2)) * 4 - 7
ans += (size - c) + 1
return ans
[size, count] = [int(x) for x in input().split(" ")]
tests = [[int(x) for x in input().split(" ")] for _ in range(count)]
for test in tests:
print(solve(size, test[0], test[1]))
Test details
Test 1
Group: 1
Verdict: ACCEPTED
| input |
|---|
| 10 100 1 1 1 2 1 3 1 4 ... |
| correct output |
|---|
| 1 36 35 34 33 ... |
| user output |
|---|
| 1 36 35 34 33 ... Truncated |
Test 2
Group: 2
Verdict: ACCEPTED
| input |
|---|
| 1000 1000 371 263 915 322 946 880 53 738 ... |
| correct output |
|---|
| 773533 312166 206053 200080 593922 ... |
| user output |
|---|
| 773533 312166 206053 200080 593922 ... Truncated |
Test 3
Group: 3
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000000000 1000 177757853 827347032 409613589 419171337 739269360 256524697 328695530 896842209 ... |
| correct output |
|---|
| 571375684522141210 967321186816598569 762879105851175000 370065046779516790 936897883750373771 ... |
| user output |
|---|
| (empty) |
