CSES - Datatähti 2017 alku - Results
Submission details
Task:Bittijono
Sender:ruotsalaineno
Submission time:2016-10-04 02:07:49 +0300
Language:C++
Status:READY
Result:10
Feedback
groupverdictscore
#1ACCEPTED10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.06 s1details
#20.00 s2details
#30.00 s3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:41:32: warning: format '%d' expects argument of type 'int', but argument 2 has type 'uint64_t {aka long unsigned int}' [-Wformat=]
         printf("%d\n",solved[x]);
                                ^

Code

#include <iostream>
#include <cstdio>
#include <math.h>
#include <cstdint>

uint64_t which(uint64_t n){
    return floor(log2(n));
}

bool solve(uint64_t n){
    n--;
    uint64_t tries = 0;
    uint64_t p = which(n);
    while(1){
        tries++;
        
        n = n - pow(2, p);

        if ( n == 0 ){
            return tries % 2;
        }
        p = which(n);
    }
}

int main(){
    unsigned long int len;
    std::cin >> len;

    uint64_t input[len];
    for(unsigned int x = 0;x < len; x++){
        std::cin >> input[x];
    }

    uint64_t solved[len];
    for(unsigned int x = 0;x < len; x++){
        solved[x] = solve(input[x]);
    }  

    for(unsigned char x = 0;x < len; x++){
        printf("%d\n",solved[x]);
    }
    
    return 0;    
}

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:

input
100000
565433
141881
120108
825392
...

correct output
1
1
0
0
1
...

user output
(empty)

Test 3

Group: 3

Verdict:

input
100000
374768524402011755
937067109466254318
389256426086302899
932585725667010169
...

correct output
0
1
1
1
1
...

user output
(empty)