a = (input())
a = int(a)
if a == 1:
print(1)
exit(0)
l = 1;
r = 1e50;
while (r-l>1):
m = int((l+r)//2)
x = int((l+r)//2)
x = int((x*(x+1))//2)
if int(x) >= int(a):
r = m
else:
l = m
x = int((r*(r+1))//2)
if x >= a:
l = r
c = l*l
cnt = l*(l+1)//2
c -= (cnt-a)*2
print (c)
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
17 ms |
2796 KB |
Output is correct |
2 |
Correct |
16 ms |
2796 KB |
Output is correct |
3 |
Correct |
17 ms |
3072 KB |
Output is correct |
4 |
Correct |
16 ms |
2796 KB |
Output is correct |
5 |
Correct |
18 ms |
2796 KB |
Output is correct |
6 |
Correct |
16 ms |
2796 KB |
Output is correct |
7 |
Correct |
16 ms |
2796 KB |
Output is correct |
8 |
Correct |
16 ms |
2944 KB |
Output is correct |
9 |
Correct |
16 ms |
2796 KB |
Output is correct |
10 |
Correct |
17 ms |
2796 KB |
Output is correct |
11 |
Correct |
16 ms |
2796 KB |
Output is correct |
12 |
Correct |
16 ms |
2796 KB |
Output is correct |
13 |
Correct |
16 ms |
2944 KB |
Output is correct |
14 |
Correct |
16 ms |
2796 KB |
Output is correct |
15 |
Correct |
16 ms |
2796 KB |
Output is correct |
16 |
Correct |
17 ms |
2796 KB |
Output is correct |
17 |
Correct |
16 ms |
2796 KB |
Output is correct |
18 |
Correct |
16 ms |
2796 KB |
Output is correct |
19 |
Correct |
16 ms |
2796 KB |
Output is correct |
20 |
Correct |
16 ms |
2796 KB |
Output is correct |
21 |
Correct |
16 ms |
2796 KB |
Output is correct |
22 |
Correct |
17 ms |
2796 KB |
Output is correct |