| Task: | Bittijono |
| Sender: | fergusq |
| Submission time: | 2016-10-03 21:27:44 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | 0 |
| group | verdict | score |
|---|---|---|
| #1 | WRONG ANSWER | 0 |
| #2 | WRONG ANSWER | 0 |
| #3 | OUTPUT LIMIT EXCEEDED | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.06 s | 1 | details |
| #2 | WRONG ANSWER | 0.72 s | 2 | details |
| #3 | OUTPUT LIMIT EXCEEDED | 0.00 s | 3 | details |
Code
#include <iostream>
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];
}
long long solve(long long k) {
cout << " -> " << k << endl;
if (k <= 1) return k;
return !solve(k-(1<<log2_64(k)));
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
long long k;
cin >> k;
cout << solve(k-1) << endl;
}
}
Test details
Test 1
Group: 1
Verdict: WRONG ANSWER
| input |
|---|
| 100 62 9 12 73 ... |
| correct output |
|---|
| 1 1 1 0 1 ... |
| user output |
|---|
| -> 61 -> 29 -> 13 -> 5 -> 1 ... |
Test 2
Group: 2
Verdict: WRONG ANSWER
| input |
|---|
| 100000 565433 141881 120108 825392 ... |
| correct output |
|---|
| 1 1 0 0 1 ... |
| user output |
|---|
| -> 565432 -> 41144 -> 8376 -> 184 -> 56 ... |
Test 3
Group: 3
Verdict: OUTPUT LIMIT EXCEEDED
| input |
|---|
| 100000 374768524402011755 937067109466254318 389256426086302899 932585725667010169 ... |
| correct output |
|---|
| 0 1 1 1 1 ... |
| user output |
|---|
| (empty) |
