CSES - Datatähti 2017 alku - Results
Submission details
Task:Bittijono
Sender:cattes
Submission time:2016-10-07 18:10:48 +0300
Language:C++
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED10
#2ACCEPTED19
#3ACCEPTED71
Test results
testverdicttimegroup
#1ACCEPTED0.05 s1details
#2ACCEPTED0.09 s2details
#3ACCEPTED0.12 s3details

Compiler report

input/code.cpp: In function 'int getBit(long long unsigned int*, int)':
input/code.cpp:15:12: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  tmp = tmp >> shift + (8 - shift-1);
            ^

Code

//#include <stdio.h>
#include <iostream>
#include <sstream>
#include <cstring>
#include <math.h>



int getBit(unsigned long long * source, int bit) {
	unsigned char * ptr = (unsigned char *)source;
	unsigned int byte = bit / 8;
	unsigned int shift = bit - byte * 8;
	unsigned char tmp = *(ptr + byte);
	tmp = tmp << shift;
	tmp = tmp >> shift + (8 - shift-1);
	return tmp;
}

int main() {
	
	int numQueries;
	std::cin >> numQueries;
	std::cin.get();

	unsigned long long * queries = new unsigned long long[numQueries];

	for (int i = 0; i < numQueries; i++) {
		std::cin >> queries[i];
		queries[i]--;
		std::cin.get();
	}
	

	for (int i = 0; i < numQueries; i++) {
		int bitsUp = 0;
		for (int x = 0; x < 64; x++) {
			if (getBit(&queries[i], x) == 1) {
				bitsUp++;
			}
		}
		if (bitsUp % 2 == 0) {
			std::cout << "0\n";
		}
		else {
			std::cout << "1\n";
		}
	}


	std::cin.get();
	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: ACCEPTED

input
100000
374768524402011755
937067109466254318
389256426086302899
932585725667010169
...

correct output
0
1
1
1
1
...

user output
0
1
1
1
1
...