CSES - Datatähti 2022 alku - Results
 Task: Spiraali (Spiral) Sender: arde100 Submission time: 2021-10-10 14:26:04 Language: CPython3 Status: READY Result: 0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.03 s1details
#20.03 s2details
#30.03 s3details

Code

```n,t = input().split()
n = int(n)
t = int(t)

testit = []

for i in range(t):
y,x = input().split()
y = int(y)
x = int(x)
testit.append((y-1,x-1))

for i in testit:
x = i[1]
y = i[0]
x_r = (n-1)/2 - abs(x - (n-1) / 2)
y_r = (n-1)/2 - abs(y - (n-1) / 2)
r = int(min(x_r,y_r))

# Laskee ensimmäisen kierroksen pituuden (jos n=10, tulee 36)
r_0 = 4*(n-1)
# Laskee halutun kierroksen pituuden (1,4=24)
r_bef_h = int(r_0 - 8*(r-1))
r_h = int(r_0 - 8*r)
r_first = (r*((r_0+r_bef_h)//2)) + 1
#print(r,r_0,r_bef_h,r_first)

# Jos ollaan vasemmassa reunassa
if x == r:
num = r_first + y - r

# Jos ollaan alarivissä
elif y == r + r_h//4:
num = r_first + (r_h//4) + (x - r)

# Jos ollaan oikeassa reunassa
elif x == r + r_h//4:
num = r_first + 2*(r_h//4) + (r_h//4 - (y - r))

# Jos ollaan ylärivissä
elif y == r:
num = r_first + 3*(r_h//4) + (r_h//4 - (x - r))

print(x,y,r,r_first,r_h)
print(int(num),r)

```

Test details

Group: 1

Verdict:

input
10 100
1 1
1 2
1 3
1 4
...

correct output
1
36
35
34
33
...

user output
0 0 0 1 36
1 0
1 0 0 1 36
36 0
2 0 0 1 36
...

Test 2

Group: 2

Verdict:

input
1000 1000
371 263
915 322
946 880
53 738
...

correct output
773533
312166
206053
200080
593922
...

user output
262 370 262 773425 1900
773533 262
321 914 85 311101 3316
312166 85
879 945 54 204337 3564
...

Test 3

Group: 3

Verdict:

input
1000000000 1000
177757853 827347032
409613589 419171337
739269360 256524697
328695530 896842209
...

correct output
571375684522141210
967321186816598569
762879105851175000
370065046779516790
936897883750373771
...

user output
827347031 177757852 172652968 ...