CSES - Datatähti 2022 alku - Results
Submission details
Task:Spiraali
Sender:jaaskelainen
Submission time:2021-10-07 00:25:28 +0300
Language:Python3 (CPython3)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.03 s1details
#20.42 s2details
#3--3details

Code

def move(dir):
global step
global size
global x
global y
global newX
global newY
global ans
for z in range(size-1):
newY+=1
step+=1
if(newY == y and newX == x):
ans.append(step)
break
c = input("")
c = c.split()
n = int(c[0])
t = int(c[1])
ans = []
for s in range(t):
i = input("")
coord = i.split()
y = int(coord[0])
x = int(coord[1])
size = n
step = 0
maxsize = n
if(x == 1 and y== 1):
step = 1
ans.append(step)
elif(x-y == 1):
step = (x-1)*4*n - (((x-1)**2)*4)
ans.append(step)
elif(x-y < 1):
if(y == n):
step = 1
newX = 1
newY = 1
elif(x <= n/2):
step = ((x-1))*4*n - ((((x-1))**2)*4)
size -= 2*(x-1)
newX = x
newY = x-1
else:
step = ((((n+1)-x)))*4*n - ((((((n+1)-x)))**2)*4)+1
newX = (n+1)-x
newY = (n+1)-x
ansExists = False
z = 0
while(z < (size-1) and ansExists==False):
newY+=1
step+=1
if(newY == y and newX == x):
ans.append(step)
ansExists = True
z+=1
z = 0
while(ansExists == False and z < (size-1)):
newX+=1
step+=1
if(newY == y and newX == x):
ans.append(step)
ansExists = True
z+=1
z = 0
while(ansExists == False and z < (size-1)):
newY-=1
step+=1
if(newY == y and newX == x):
ans.append(step)
ansExists = True
z += 1
z = 0
while(ansExists == False and z < (size-1)):
newX-=1
step+=1
if(newY == y and newX == x):
ans.append(step)
ansExists = True
z += 1
else:
if(x == n):
step = 1
newX = 1
newY = 1
elif(y<=n/2):
step = ((y))*4*n - ((((y))**2)*4)
size -= 2*(y)
newY = y
newX = y+1
else:
step = ((((n+1)-y)))*4*n - ((((((n+1)-y)))**2)*4)+1
newX = (n+1)-y
newY = (n+1)-y
difX = newX - x
difY = newY - y
if(difX < 0 and difY == 0):
step += difX
ans.append(step)
else:
ansExists = False
z = 0
while(z < (size-1) and ansExists==False):
newY+=1
step+=1
if(newY == y and newX == x):
ans.append(step)
ansExists = True
z+=1
z = 0
while(ansExists == False and z < (size-1)):
newX+=1
step+=1
if(newY == y and newX == x):
ans.append(step)
ansExists = True
z+=1
z = 0
while(ansExists == False and z < (size-1)):
newY-=1
step+=1
if(newY == y and newX == x):
ans.append(step)
ansExists = True
z += 1
z = 0
while(ansExists == False and z < (size-1)):
newX-=1
step+=1
if(newY == y and newX == x):
ans.append(step)
ansExists = True
z += 1
for x in ans:
print(x)

Test details

Test 1

Group: 1

Verdict:

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:

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

correct output
773533
312166
206053
200080
593922
...

user output
773533
200080
724839
842835
252769
...
Truncated

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
(empty)