| Task: | Lukuvälit |
| Sender: | caro |
| Submission time: | 2019-10-08 16:58:06 +0300 |
| Language: | C++ (C++11) |
| Status: | READY |
| Result: | 36 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 12 |
| #2 | ACCEPTED | 24 |
| #3 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #2 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #3 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #4 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #5 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #6 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #7 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #8 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #9 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #10 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #11 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #12 | ACCEPTED | 0.01 s | 1, 2, 3 | details |
| #13 | ACCEPTED | 0.21 s | 2, 3 | details |
| #14 | ACCEPTED | 0.21 s | 2, 3 | details |
| #15 | ACCEPTED | 0.21 s | 2, 3 | details |
| #16 | ACCEPTED | 0.21 s | 2, 3 | details |
| #17 | ACCEPTED | 0.21 s | 2, 3 | details |
| #18 | ACCEPTED | 0.21 s | 2, 3 | details |
| #19 | ACCEPTED | 0.01 s | 2, 3 | details |
| #20 | ACCEPTED | 0.01 s | 2, 3 | details |
| #21 | ACCEPTED | 0.25 s | 3 | details |
| #22 | WRONG ANSWER | 0.30 s | 3 | details |
| #23 | ACCEPTED | 0.29 s | 3 | details |
| #24 | ACCEPTED | 0.29 s | 3 | details |
| #25 | WRONG ANSWER | 0.30 s | 3 | details |
| #26 | ACCEPTED | 0.25 s | 3 | details |
| #27 | WRONG ANSWER | 0.01 s | 3 | details |
| #28 | ACCEPTED | 0.01 s | 3 | details |
Code
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
ull FirstBinary(char *table){
ull power = 1;
ull gather = 0;
for(int i = 0; i < 18; i++) {
if(table[i] > 1) {
table[i] = 0;
table[i + 1] += 1;
ull reversePower = power / 2;
for(int j = i - 1; j >= 0; j--) {
gather -= table[j] * reversePower;
table[j] = 0;
reversePower /= 2;
}
}
gather += table[i] * power;
power *= 2;
}
return gather;
}
ull InclusiveBinary(char *table){
ull power = (1 << 18);
ull gather = 0;
for(int i = 18; i > 0; i--) {
if(table[i] > 1) {
table[i] = 1;
table[i - 1] += 2;
}
gather += table[i] * power;
power /= 2;
}
if(table[0] > 1) table[0] = 1;
gather += table[0];
return gather;
}
int main(){
ull count;
cin >> count;
ull size = 2 << 19;
ull *sizeTable = (ull*)malloc(sizeof(ull) * size);
for(ull i = 0; i < size; i++) {
sizeTable[i] = i;
}
for(ull i = 0; i < count; i++) {
ull a;
ull b;
cin >> a;
cin >> b;
ull power = 1e18;
char aTable[19] = {};
char bTable[19] = {};
for(int i = 18; i >= 0; i--) {
char aDigit = a / power;
char bDigit = b / power;
aTable[i] = aDigit;
bTable[i] = bDigit;
a -= aDigit * power;
b -= bDigit * power;
power /= 10;
}
ull bIn = InclusiveBinary(bTable) + 1;
ull aIn = FirstBinary(aTable);
cout << sizeTable[bIn] - sizeTable[aIn] << '\n';
}
}
Test details
Test 1
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 4 0 10 1 5 3 4 11 11 |
| correct output |
|---|
| 3 1 0 1 |
| user output |
|---|
| 3 1 0 1 |
Test 2
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1 0 0 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 3
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1 1000 1000 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 4
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 16 0 0 0 1 0 2 1 1 ... |
| correct output |
|---|
| 1 2 2 1 1 ... |
| user output |
|---|
| 1 2 2 1 1 ... |
Test 5
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 9 0 0 0 1 0 10 0 11 ... |
| correct output |
|---|
| 1 2 3 4 5 ... |
| user output |
|---|
| 1 2 3 4 5 ... |
Test 6
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1000 0 1000 0 1000 0 1000 0 1000 ... |
| correct output |
|---|
| 9 9 9 9 9 ... |
| user output |
|---|
| 9 9 9 9 9 ... Truncated |
Test 7
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1000 100 111 0 101 1 10 10 110 ... |
| correct output |
|---|
| 4 6 2 5 8 ... |
| user output |
|---|
| 4 6 2 5 8 ... Truncated |
Test 8
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1000 480 564 753 988 479 909 32 973 ... |
| correct output |
|---|
| 0 0 0 4 0 ... |
| user output |
|---|
| 0 0 0 4 0 ... Truncated |
Test 9
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1000 98 111 8 111 98 111 111 113 ... |
| correct output |
|---|
| 4 6 4 1 7 ... |
| user output |
|---|
| 4 6 4 1 7 ... Truncated |
Test 10
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1000 0 0 1 1 2 2 3 3 ... |
| correct output |
|---|
| 1 1 0 0 0 ... |
| user output |
|---|
| 1 1 0 0 0 ... Truncated |
Test 11
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1000 0 1000 0 999 1 1000 0 998 ... |
| correct output |
|---|
| 9 8 8 8 7 ... |
| user output |
|---|
| 9 8 8 8 7 ... Truncated |
Test 12
Group: 1, 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1 0 1000 |
| correct output |
|---|
| 9 |
| user output |
|---|
| 9 |
Test 13
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 0 100000 0 100000 0 100000 0 100000 ... |
| correct output |
|---|
| 33 33 33 33 33 ... |
| user output |
|---|
| 33 33 33 33 33 ... Truncated |
Test 14
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 86042 98295 30077 80920 45856 67174 3890 60412 ... |
| correct output |
|---|
| 0 0 0 16 0 ... |
| user output |
|---|
| 0 0 0 16 0 ... Truncated |
Test 15
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 11 10000 1111 11000 1011 1100 1110 1111 ... |
| correct output |
|---|
| 14 10 2 2 8 ... |
| user output |
|---|
| 14 10 2 2 8 ... Truncated |
Test 16
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 9 9999 1109 1110 112 1012 11098 11101 ... |
| correct output |
|---|
| 14 1 4 2 6 ... |
| user output |
|---|
| 14 1 4 2 6 ... Truncated |
Test 17
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 0 0 1 1 2 2 3 3 ... |
| correct output |
|---|
| 1 1 0 0 0 ... |
| user output |
|---|
| 1 1 0 0 0 ... Truncated |
Test 18
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 100000 0 100000 0 99999 1 100000 0 99998 ... |
| correct output |
|---|
| 33 32 32 32 31 ... |
| user output |
|---|
| 33 32 32 32 31 ... Truncated |
Test 19
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 3 99999 99999 99999 100000 100000 100000 |
| correct output |
|---|
| 0 1 1 |
| user output |
|---|
| 0 1 1 |
Test 20
Group: 2, 3
Verdict: ACCEPTED
| input |
|---|
| 1 0 100000 |
| correct output |
|---|
| 33 |
| user output |
|---|
| 33 |
Test 21
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 0 1000000000000000000 0 1000000000000000000 0 1000000000000000000 0 1000000000000000000 ... |
| correct output |
|---|
| 262145 262145 262145 262145 262145 ... |
| user output |
|---|
| 262145 262145 262145 262145 262145 ... Truncated |
Test 22
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 100000 179926689319432205 25677963778... |
| correct output |
|---|
| 0 0 0 0 0 ... |
| user output |
|---|
| 262144 262144 262144 262144 262144 ... Truncated |
Test 23
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 100110100011010101 11100011010... |
| correct output |
|---|
| 74822 54944 140968 252594 23521 ... |
| user output |
|---|
| 74822 54944 140968 252594 23521 ... Truncated |
Test 24
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 100110100011010102 11100011010... |
| correct output |
|---|
| 74822 252594 94086 10836 11352 ... |
| user output |
|---|
| 74822 252594 94086 10836 11352 ... Truncated |
Test 25
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 100000 256779637786129463 25677963778... |
| correct output |
|---|
| 0 0 0 0 0 ... |
| user output |
|---|
| 262144 262144 262144 262144 262144 ... Truncated |
Test 26
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 100000 0 1000000000000000000 0 999999999999999999 1 1000000000000000000 0 999999999999999998 ... |
| correct output |
|---|
| 262145 262144 262144 262144 262143 ... |
| user output |
|---|
| 262145 262144 262144 262144 262143 ... Truncated |
Test 27
Group: 3
Verdict: WRONG ANSWER
| input |
|---|
| 3 999999999999999999 99999999999... |
| correct output |
|---|
| 0 1 1 |
| user output |
|---|
| 262144 262145 262145 |
Test 28
Group: 3
Verdict: ACCEPTED
| input |
|---|
| 1 0 1000000000000000000 |
| correct output |
|---|
| 262145 |
| user output |
|---|
| 262145 |
