CSES - Datatähti 2018 alku - Results
Submission details
Task:Kyselyt
Sender:1
Submission time:2017-10-06 17:31:47 +0300
Language:Python3
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.09 s1details
#20.10 s2details
#30.07 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
  print("n-1: " + str(n-1))
  print("i: " + str(i))
  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:

input
1000
582
214
723
273
...

correct output
0
1
7
7
6
...

user output
n-1: 2
i: 230
0
n-1: 0
i: 108
...

Test 2

Group: 2

Verdict:

input
1000
615664
916441
627600
279508
...

correct output
1
2
3
2
2
...

user output
n-1: 0
i: 121129
1
n-1: 3
i: 171258
...

Test 3

Group: 3

Verdict:

input
1000
672274832941907421
260504693279721732
646999966092970935
100853063389774434
...

correct output
7
2
2
0
9
...

user output
n-1: 40
i: 40199173179589323

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