CSES - Datatähti 2017 alku - Results
Submission details
Task:Bittijono
Sender:ruotsalaineno
Submission time:2016-10-04 01:55:32 +0300
Language:C++
Status:READY
Result:29
Feedback
groupverdictscore
#1ACCEPTED10
#2ACCEPTED19
#30
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1details
#2ACCEPTED0.18 s2details
#30.42 s3details

Code

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

using namespace std;

/*
unsigned int which(unsigned long long int n){
    unsigned long int p = 1;
    while(1){
        if(n >= pow(2,p)){
            p++;
            continue;
        } 
        p--;
        break;
    }
    return p;
}
*/

unsigned int which(unsigned long long int n){
    return floor(log2(n));
}

unsigned char solve(unsigned long long int n){
    n--;
    unsigned int tries = 0;
    unsigned int 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;
    cin >> len;

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

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

    for(unsigned int 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: 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
1
0
1
0
1
...