CSES - Datatähti 2018 alku - Results
Submission details
Task:Kyselyt
Sender:1
Submission time:2017-10-07 10:33:55 +0300
Language:Python3
Status:READY
Result:37
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED25
#30
Test results
testverdicttimegroup
#1ACCEPTED0.07 s1details
#2ACCEPTED0.09 s2details
#30.09 s3details

Code

import math as m

def cms(mag):
  c = 0
  for i in range(1, mag + 1):
    c += (10**i - 10**(i-1)) * i
  return c

def get_mag(n):
  b = 10;
  c = 0
  i = 1
  while c < n:
    c += (b**i - b**(i-1)) * i
    i += 1
  return i - 1

def locate_digit(n):
  if n == 1:
    return 1;
  mag = get_mag(n);
  n -= cms(mag-1)
  #print("n: " + str(n))
  i = 10**(mag - 1) + m.ceil(n / mag) - 1
  n -= (i - 10**(mag-1)) * mag + 1
  #print("i: " + str(i) + "   /   n: " + str(n))
  return int(str(i)[n])

q = int(input())
r = []
for i in range(0, q):
    r.append(int(input()))

for i in r:
    print(locate_digit(i))

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
1000
582
214
723
273
...

correct output
0
1
7
7
6
...

user output
0
1
7
7
6
...

Test 2

Group: 2

Verdict: ACCEPTED

input
1000
615664
916441
627600
279508
...

correct output
1
2
3
2
2
...

user output
1
2
3
2
2
...

Test 3

Group: 3

Verdict:

input
1000
672274832941907421
260504693279721732
646999966092970935
100853063389774434
...

correct output
7
2
2
0
9
...

user output
(empty)

Error:
Traceback (most recent call last):
  File "input/code.py", line 35, in <module>
    print(locate_digit(i))
  File "input/code.py", line 27, in locate_digit
    return int(str(i)[n])
IndexError: string index out of range