I have to make a program that finds the n-th element in the following endless sequence:
1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1......
So here you can see that 'center' increments by one and side elements of the 'center' reflect each other so we can break this sequence into small groups:
[1][121][12321][1234321].....
So the task is to find n-th element in the sequence given n. For example, we take 7 as input and must return 3, because the 7th element in sequence is 3. The problem here is that when n exceeds 10^15
my program shows runtime error, while input can be as large as 10^100000
. Here is my code:
n = int(input())
fin = n
number = long(1)
counter = long(0)
while n>0:
n = n - number
number = number+2
counter = counter + 1
mid = long((counter-1)*(2+2*(counter-1))/2+1)
place = long(counter - abs(mid-fin))
if fin==0:
print 0
else:
print place