CSES - Datatähti 2017 alku - Results
Submission details
Task:Bittijono
Sender:inkeri
Submission time:2016-10-05 23:18:04 +0300
Language:Python2
Status:READY
Result:29
Feedback
groupverdictscore
#1ACCEPTED10
#2ACCEPTED19
#30
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1details
#2ACCEPTED1.62 s2details
#3--3details

Code

# -*- coding: utf-8 -*-
import math

class Bittijono():
    def __init__(self):
        self.bitit = [[0, 1], [1, 0]]

    def getBitti(self, luku, length, bitti):
        if length > 2:
            length /= 2
            luku -= length
            if bitti == 0:
                bitti = 1
            else:
                bitti = 0
            while luku <= length / 2:
                length /= 2
            return self.getBitti(luku, length, bitti)

        return self.bitit[bitti][luku - 1]

def main():
    jono = Bittijono()
    amount = int(input(""))

    for i in xrange(amount):
        luku = int(input(""))
        length = int(math.pow(2, math.ceil(math.log(luku, 2))))
        print jono.getBitti(luku, length, 0)

# def luoJono(luku):
#     jono = [0, 1]
#     while len(jono) < luku:
#         uusijono = []
#         for bitti in jono:
#             if bitti == 0:
#                 uusijono += [0, 1]
#             else:
#                 uusijono += [1, 0]
#         jono = uusijono
#     return jono

# def test(maara):
#     jono = Bittijono()
#     lista = [i + 1 for i in range(maara)]
#     jono2 = luoJono(lista[maara - 1])
#     vaarat = []
#
#     # for luku in lista:
#     #     a = ""
#     #     a += str(luku) + ": "
#     #     length = math.pow(2, math.ceil(math.log(luku, 2)))
#     #     print a + str(jono.getBitti(luku, length, 0))
#
#     for luku in lista:
#         length = int(math.pow(2, math.ceil(math.log(luku, 2))))
#         bitti = jono.getBitti(luku, length, 0)
#         if bitti != jono2[luku - 1]:
#             vaarat.append(luku)
#
#     print vaarat

main()
#test(2000)

Test details

Test 1

Group: 1

Verdict: ACCEPTED

input
100
62
9
12
73
...

correct output
1
1
1
0
1
...

user output
1
1
1
0
1
...

Test 2

Group: 2

Verdict: ACCEPTED

input
100000
565433
141881
120108
825392
...

correct output
1
1
0
0
1
...

user output
1
1
0
0
1
...

Test 3

Group: 3

Verdict:

input
100000
374768524402011755
937067109466254318
389256426086302899
932585725667010169
...

correct output
0
1
1
1
1
...

user output
(empty)