CSES - Datatähti 2018 alku - Results
Submission details
Task:Kyselyt
Sender:Uolevi
Submission time:2017-10-11 16:29:11 +0300
Language:Python3
Status:READY
Result:37
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED25
#30
Test results
testverdicttimegroup
#1ACCEPTED0.17 s1details
#2ACCEPTED0.12 s2details
#30.14 s3details

Code

import math
k = int(input(""))
vastaus = []
for q in range(k):
    inputti = int(input(""))
    array = [9]
    modArray = []
    potenssit = [1,2,4,8,16]
    for i in range(1,19):
        array.append((array[i-1]*10)/(i)*(i+1))
    for i in range(19,0,-1):
        if inputti > sum(array[:i]):
            kohta = i+1
            break
        kohta = 1
    for i in range(0,18):
        modArray.append(array[i]%(i+2))
    if inputti < 10:
        vastaus.append(inputti)
    else:
        jokuluku = 0
        for i in range(0,18):
            if modArray[i] != 0:
                jokuluku+=1
            if i >= kohta:
                break
        luku = inputti-sum(array[:kohta-1])
        lukuYlä = math.ceil(luku/kohta) - 1
        lukuYlä += int(10**(kohta-1))
        string = int(int(inputti%(kohta)))-1
        #print(string)
        #print(modArray)
        if kohta == 3:
            string -= 0
        elif kohta == 4:
            string -= 1
        elif kohta == 5:
            string -= 4
        elif kohta == 6:
            string -= 3
        elif kohta == 7:
            string -= 6
        elif kohta == 8:
            string -= 7
        elif kohta == 9:
            string -= 4
        elif kohta == 10:
            string -= 8
        elif kohta == 11:
            string -= 9
        elif kohta == 12:
            string -= 2
        elif kohta == 13:
            string -= 11
        elif kohta == 14:
            string -= 12
        elif kohta == 15:
            string -= 10
        elif kohta == 16:
            string -= 10
        elif kohta == 17:
            string -= 12
        elif kohta == 18:
            string -= 0
#            print(string)
        else:
            string -= 1
        #print(kohta)

#        print(lukuYlä, string, "MITÄS")
        vastaus.append(str(lukuYlä)[string])
for i in vastaus:
    print(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
9
5
3
9
2
...