CSES - Datatähti 2017 alku - Results
Submission details
Task:Bittijono
Sender:FSMnArmosta
Submission time:2016-10-03 10:42:16 +0300
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1--1details
#2--2details
#3--3details

Code

#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
const int tab64[64] = {
63, 0, 58, 1, 59, 47, 53, 2,
60, 39, 48, 27, 54, 33, 42, 3,
61, 51, 37, 40, 49, 18, 28, 20,
55, 30, 34, 11, 43, 14, 22, 4,
62, 57, 46, 52, 38, 26, 32, 41,
50, 36, 17, 19, 29, 10, 13, 21,
56, 45, 25, 31, 35, 16, 9, 12,
44, 24, 15, 8, 23, 7, 6, 5};
int log2_64 (uint64_t value)
{
value |= value >> 1;
value |= value >> 2;
value |= value >> 4;
value |= value >> 8;
value |= value >> 16;
value |= value >> 32;
return tab64[((uint64_t)((value - (value >> 1))*0x07EDD5E59A4E28C2)) >> 58];
}
int powOf2(int x){
int i = 1;
while(i < x)
i = i*2;
return i/2;
}
bool bitAt(int x){
if(x == 0)
return false;
else if(x == 1)
return true;
else if(x == 2)
return true;
return !bitAt(x-pow(2, log2_64(x+1)));
}
int main(int argc, char *argv[])
{
int lines = 0;
std::cin >> lines;
int i = 0;
while(i < lines){
int k = 0;
std::cin >> k;
if(bitAt(k-1)){
std::cout << "1" << std::endl;
}else{
std::cout << "0" << std::endl;
}
i = i + 1;
}
return 0;
}

Test details

Test 1

Group: 1

Verdict:

input
100
62
9
12
73
...

correct output
1
1
1
0
1
...

user output
(empty)

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)