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

Code

import math as m

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

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

def locate_digit(n, b):
  magnitude = get_mag(n, b)
  n -= calc_mag_size(magnitude-1, b)
  i = b**(magnitude - 1) + m.ceil(n / magnitude) - 1
  n -= (i - b**(magnitude-1)) * magnitude
  return int(str(i)[n - 1])

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

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

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 30, in <module>
    print(locate_digit(i, 10))
  File "input/code.py", line 22, in locate_digit
    return int(str(i)[n - 1])
IndexError: string index out of range