QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#115649 | #6510. Best Carry Player 3 | jzh# | WA | 121ms | 3576kb | C++14 | 1.6kb | 2023-06-26 14:39:50 | 2023-06-26 14:39:53 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int count(ll k) {
int num = 0;
while (k) {
k >>= 1;
num++;
}
return num;
}
int getval(ll x, ll y, ll k) {
ll mid = (x ^ y);
if (mid == 0) return 0;
if (abs(x - y) == 1) return 1;
if (mid <= k) return 1;
return 2;
}
void solve() {
ll x, y, k;
cin >> x >> y >> k;
if (x == y) {
cout << 0 << "\n";
return;
}
if (k <= 1) {
cout << abs(x - y) << "\n";
return;
}
ll nk = count(k);
ll dkz = (1 << (nk)) - 1;
if (x > y) {
ll high_cost = ((x >> nk) - (y >> nk));
if (high_cost == 0) {
ll need = (x & dkz) ^ (y ^ dkz);
ll ans = getval(x & dkz, y & dkz, k);
cout << ans << "\n";
return;
}
ll d1 = getval(x & dkz, 0, k);
ll mid = (high_cost - 1) * (dkz == k ? 1 : 2) + high_cost;
ll d2 = getval(y & dkz, dkz, k);
cout << d1 + mid + d2 << "\n";
return;
} else {
ll high_cost = abs(((x >> nk) - (y >> nk)));
if (high_cost == 0) {
ll ans = getval(x & dkz, y & dkz, k);
cout << ans << "\n";
return;
}
ll d1 = getval(x & dkz, dkz, k);
ll mid = (high_cost - 1) * (dkz == k ? 1 : 2) + high_cost;
ll d2 = getval(y & dkz, 0, k);
cout << d1 + mid + d2 << "\n";
return;
}
}
int main() {
ios::sync_with_stdio(false);
int t;
cin >> t;
while (t--) {
solve();
}
return 0;
}
/*
5
2
1 2
3
2 3 1
4
1 4 3 2
5
1 5 2 3 4
6
1 2 3 4 5 6
*/
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3348kb
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: 0
Accepted
time: 83ms
memory: 3576kb
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:
ok 100000 numbers
Test #3:
score: 0
Accepted
time: 121ms
memory: 3412kb
input:
100000 322 25 2699 83 407 606 157 77 162 358 3 4064 407 35 1145 15 491 801 174 95 1886 67 93 2573 415 7 2014 16 203 2003 95 357 453 287 14 1247 63 108 3617 124 30 3806 116 425 830 483 63 2237 97 123 1194 124 460 2729 71 99 818 118 24 527 92 236 3298 446 55 413 0 122 3335 193 64 318 55 201 3120 475 8...
output:
1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 7 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6 1 1 1 1 3 1 1 1 3 1 1 1 1 1 1 1 1 5 1 1 1 1 1 1 2 1 1 1 1 6 1 1 1 6 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 114 1 1 1 1 1 1 1 1...
result:
ok 100000 numbers
Test #4:
score: 0
Accepted
time: 88ms
memory: 3400kb
input:
100000 460 16 1999514420 38 120 459071025 36 5 435961014 415 44 1634888670 236 110 1172545331 116 449 1722938168 9 55 1093539809 98 9 2009254678 160 13 874849076 72 59 307472779 94 278 829310177 375 21 1588655085 85 272 1310414813 101 309 2072973009 96 370 510582365 55 6 285781515 45 99 743723479 43...
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok 100000 numbers
Test #5:
score: 0
Accepted
time: 105ms
memory: 3400kb
input:
100000 102 211 434535176914392191 113 382 10473939473902551 154 70 347749780432060530 307 4 770301859497555482 21 88 1148164284941713103 141 52 298799672146159282 86 67 592474494235856008 126 423 500925453682730053 72 23 751099353059890065 105 60 591595972426609814 1 312 322398882693527462 488 21 29...
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
result:
ok 100000 numbers
Test #6:
score: 0
Accepted
time: 87ms
memory: 3568kb
input:
100000 900433230470865373 168 0 274936233345873548 263 0 107 912910047733415890 1 148108377912190269 159 1 637618261092082754 433 0 206160758979307706 117 5 374274670768546935 258 4 84 460392244654734212 6 568787141853147589 410 2 412 739540468281060656 2 420 372651009036366141 4 99 7542107804877648...
output:
900433230470865205 274936233345873285 912910047733415783 148108377912190110 637618261092082321 77310284617240347 140353001538205004 172647091745525298 426590356389860385 554655351210795183 139744128388637146 377105390243882372 137260618027802044 228162758321107513 238496406926521455 4701988644786694...
result:
ok 100000 numbers
Test #7:
score: 0
Accepted
time: 119ms
memory: 3540kb
input:
100000 188 488898411793715829 1662 510531470828119181 461 3880 438 860056315149583446 2443 42 812320392335060663 3402 217505267941559099 476 1869 733654172372163727 264 3646 489 830976331637915910 1805 320 291401742311195413 2413 727350143139117155 212 3564 741441713302666228 127 3543 235 6311872086...
output:
716159782900951 373924417110438 629924058947449 594961224854780 318611232336267 537344364530392 1217250485797728 213429010481833 532727155619470 543048129860350 924590637678442 364977615196297 623513894326819 700013580991870 919332840637041 328404862469641 208593246441270 504345408627412 79159378552...
result:
ok 100000 numbers
Test #8:
score: 0
Accepted
time: 73ms
memory: 3424kb
input:
100000 257065522585566918 30 1812115310 83844174930688960 422 1624142137 375 469381000404632137 2011601386 3 867947326951574129 565346038 492077250720556083 481 302247286 12568100705985631 46 1125722166 920283886245013913 437 1819207161 447 543496034445506022 1182065585 303 120270820941724589 262528...
output:
359116387 117128959 655717681 2425016818 2749695913 17557433 1285621738 759255190 1344131167 6268476244 3054607769 1236129328 238549747 166968007 1286435771 6436773067 125390267 2868985966 1322338912 945384623 1498197809 539118172 640614664 1478520541 626183317 9372581165 1142622586 1236092431 13418...
result:
ok 100000 numbers
Test #9:
score: -100
Wrong Answer
time: 90ms
memory: 3428kb
input:
100000 428068929935037839 388 630663327499068933 262 958123279540916859 771299383434598713 428 822514876586340933 987799047076516848 237287479925224365 312 424435087833422191 701225953118656766 161 833708981315149466 394956250518140170 204 217521001178891893 257 1053780657770182567 11160907334756932...
output:
1 1 1 1 1 3 1 1 1 1 1 3 3 33 1 15 3 1 9 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 1 12 1 1 1 1 9 6 63 12 1 1 1 1 1 1 486 1 3 6 3 1 1 1 1 3 3 1 3 1 1 3 9 1 1 1 3 1 1 9 3 3 1 1 1 1 1 3 1 3 3 1 24 1 1 9 1 3 1 1 12 12 1 1 1 15 1 1 1 1 1 45 6 1 6 1 1 1 1 3 1 1 3 9 1 9 1 1 3 1 1 6 1 1 3 1 1 1 1 1 1 1 1 1 1 1 6 1 1 1 ...
result:
wrong answer 2nd numbers differ - expected: '2', found: '1'