CSES - Datatähti 2018 alku - Results
Submission details
Task:Kyselyt
Sender:Hege
Submission time:2017-10-11 21:55:40 +0300
Language:Python3
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED12
#2ACCEPTED25
#3ACCEPTED63
Test results
testverdicttimegroup
#1ACCEPTED0.10 s1details
#2ACCEPTED0.08 s2details
#3ACCEPTED0.08 s3details

Code

### KYSELYT (dt21k8-x(x-1)||x=10) ###
def infiniteSumCalculator(a):
# we always haz to bear with magnitude of the number.
mag = 1
# spec haz a bug, this is only a hotfix
# lol this do-while h4x again :D
while True:
# i dunno whats going on there but the shell shows it wurkz
a -= 9*10**(mag-1)*mag
if a <= 0:
# counter the decrement ":D"
a += 9*10**(mag-1)*mag
break
# i++ :D
mag += 1
a += mag-1
## fix for the spec hotfix special case
#if mag == 1:
# a -= 1
#
# ## second hotfix
# #if mag == 2 and a == 1:
# # mag -=1
# a -= 1
# lets just return this puke from shell
return str(a // mag + 10**(mag-1) -1)[a % mag]
# what about one useless main() more
def main(a):
pass
### just testing functions here ###
def concatenated(a):
return "".join([str(i) for i in range(1,a)])
def massTest(n):
q = concatenated(n)
for i in range(n):
try:
b = infiniteSumCalculator(i+1)
if q[i] != b:
print(i, q[i], b, False)
except Exception as e:
print("{} {} {} {}: {}".format(i, q[i], b, e.__class__.__name__, e))
### testing site ends here ###
# lets escape this thing from pyyttons moduuls
if __name__ == "__main__":
# this looks like a c-ish thing
for i in range(int(input())):
# and this is pyton
print(infiniteSumCalculator(int(input())))
# remember: sometimes u can just prematurely optimize things
# very well but it makes very strange chewgum code. Even me
# cannot fully understand what is happenings in this file.

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
...
Truncated

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
...
Truncated

Test 3

Group: 3

Verdict: ACCEPTED

input
1000
672274832941907421
260504693279721732
646999966092970935
100853063389774434
...

correct output
7
2
2
0
9
...

user output
7
2
2
0
9
...
Truncated