QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#129688 | #6510. Best Carry Player 3 | Sorting# | WA | 18ms | 3584kb | C++20 | 1.3kb | 2023-07-22 22:09:18 | 2023-07-22 22:09:20 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std ;
typedef long long ll ;
typedef unsigned long long ull ;
typedef pair < int , int > pii ;
typedef vector < int > vi ;
#define fi first
#define se second
mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x), end(x)
#define sz(x) (int)(x).size()
ll calc ( ll up , ll down , ll mx ) {
if ( up == down ) { return 0 ; }
ll diff = ( up ^ down ) ;
if ( diff <= mx ) { return 1 ; }
return 2 ;
}
void solve ( ) {
ll x , y , z ;
cin >> x >> y >> z ;
if ( x < y ) { swap ( x , y ) ; }
ll up = 1 , id = 0 ;
while ( up <= z ) {
up *= 2 ;
++ id ;
}
ll bigx = ( x >> id ) , bigy = ( y >> id ) ;
ll smallx = ( x & ( up - 1 ) ) , smally = ( y & ( up - 1 ) ) ;
if ( bigx == bigy ) {
cout << calc ( smallx , smally , z ) << "\n" ;
}
else {
ll ret = bigx - bigy + calc ( smallx , 0 , z ) ;
-- bigx ;
ret += ( bigx - bigy ) * calc ( up - 1 , 0 , z ) ;
ret += calc ( up - 1 , smally , z ) ;
cout << ret << "\n" ;
}
}
int main ( ) {
ios_base :: sync_with_stdio ( false ) ;
cin.tie ( NULL ) ;
int t = 1 ; cin >> t ;
while ( t -- ) { solve ( ) ; }
return 0 ;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3584kb
input:
8 4 5 0 5 8 3 9 2 6 15 28 5 97 47 8 164 275 38 114514 1919 810 0 1152921504606846975 1
output:
1 2 3 5 11 6 331 1152921504606846975
result:
ok 8 numbers
Test #2:
score: -100
Wrong Answer
time: 18ms
memory: 3452kb
input:
100000 84 318 6 54 226 7 92 33 0 39 54 5 76 79 7 247 110 0 211 90 0 4 430 3 230 17 1 491 93 5 196 117 7 137 29 2 76 490 6 422 43 7 277 26 4 159 43 1 67 37 5 17 2 5 113 176 7 85 473 0 68 217 7 275 8 7 124 34 1 30 66 0 80 149 3 103 149 6 84 354 1 27 342 7 94 114 1 69 125 1 72 48 7 361 8 7 285 82 1 74 ...
output:
87 45 59 6 1 137 121 213 213 150 21 81 156 95 95 116 12 6 16 388 39 67 90 36 35 17 270 79 20 56 6 89 203 108 26 15 157 98 111 389 174 123 59 289 78 17 21 36 275 191 17 102 60 93 100 11 6 79 44 63 91 60 22 109 11 3 10 67 11 85 207 47 39 83 156 189 107 27 81 247 81 335 33 144 11 50 54 347 233 175 30 7...
result:
wrong answer 809th numbers differ - expected: '1', found: '2'