-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.py
More file actions
40 lines (31 loc) · 1016 Bytes
/
Copy pathtest.py
File metadata and controls
40 lines (31 loc) · 1016 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
def findLevelAndIndex(point):
left = right = 1
level = 0
while True:
if left <= point and point <= right:
for i in range(level + 1):
if point == left + i:
return level, i
else:
return level, 0
level += 1
left += level
right = left + level
def myFunc(a, b):
upperPoint = min(a, b)
lowerPoint = max(a, b)
upperLevel, upperIndex = findLevelAndIndex(upperPoint)
lowerLevel, lowerIndex = findLevelAndIndex(lowerPoint)
levelDiff = lowerLevel - upperLevel
if lowerIndex <= upperIndex:
indexDiff = upperIndex - lowerIndex
elif lowerIndex >= upperIndex + levelDiff:
indexDiff = lowerIndex - (upperIndex + levelDiff)
else:
indexDiff = 0
return levelDiff + indexDiff
T = int(input())
for test_case in range(1, T + 1):
a, b = tuple(int(n) for n in input().split())
result = myFunc(a, b)
print(f"#{test_case} {result}")