ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#214807 | #2684. Digit Sum | N | 0 | 19ms | 1256kb | C++11 | 1.6kb | 2024-11-21 22:02:24 | 2024-11-22 09:36:47 |
answer
//
// na 2684-re.cpp
// Competitive Programming
//
// Created by m2 on 2024/11/21.
//
#include <stdio.h>
#include <iostream>
using namespace std;
typedef long long int ll;
ll x, n;
inline ll ds(ll base){
ll res = 0, reg = x;
while(reg){
res += reg % base;
reg /= base;
}
// cerr << "ds-" << base << " -> " << res << endl;
return res;
}
inline ll solve(){
cin >> x >> n;
{
ll s = 0;
for(ll i = 0; i < 61; ++i)
s += (x >> i) & 1;
if(s == n)
return 2;
// cerr << "NOT BINARY" << endl;
}
if(n == x)
return x + 1;
ll lim = x, lt, rt, mid, res = -1, base, slope, dst;
while(lim > 2){
// cerr << "test" << lim << endl;
base = ds(lim);
if(base == n)
res = lim;
slope = ds(lim - 1) - ds(lim);
if(slope <= 0){
--lim;
continue;
}
lt = 1; rt = lim - 1;
while(lt < rt - 1){
mid = (lt + rt) >> 1;
if(ds(mid) == base + slope * (lim - mid))
rt = mid;
else
lt = mid;
}
// cerr << "found interval: " << lt << " -> " << lim << endl;
if(base <= n && (n - base) % slope == 0){
dst = lim - (n - base) / slope;
if(dst >= rt)
res = min(res, dst);
}
lim = rt - 1;
}
return res;
}
int main(){
cin.tie(0)->sync_with_stdio(false);
int t;
cin >> t;
while(t--)
cout << solve() << endl;
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 1256kb
input:
10 888625 163964 35930 5139 531439 147185 749555 345722 69047 16611 55833 9203 307717 106246 933880 ...
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
wrong answer 1st lines differ - expected: '724662', found: '-1'
Test #2:
score: 0
Wrong Answer
time: 4ms
memory: 1252kb
input:
10 450817 145239 822536 101101 234226 52339 995924 105895 378034 2945 639602 284931 147612 44381 253...
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
wrong answer 1st lines differ - expected: '152790', found: '-1'
Test #3:
score: 0
Wrong Answer
time: 3ms
memory: 1256kb
input:
10 23798 4780 503642 62007 363324 80713 37004 7817 540153 82969 199281 32442 520499 159495 447250 37...
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
wrong answer 1st lines differ - expected: '9510', found: '-1'
Test #4:
score: 0
Wrong Answer
time: 4ms
memory: 1256kb
input:
10 537103 140173 203204 73349 296269 133080 483130 200096 305554 36152 209507 29381 957094 13012 740...
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
wrong answer 1st lines differ - expected: '198466', found: '-1'
Test #5:
score: 0
Wrong Answer
time: 3ms
memory: 1252kb
input:
10 87451 9578 905581 255725 521449 257855 748415 342780 5617 1359 452858 52144 822082 373556 389173 ...
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
wrong answer 1st lines differ - expected: '77874', found: '-1'
Test #6:
score: 0
Wrong Answer
time: 5ms
memory: 1252kb
input:
10 947539 24439 567949 142999 783681 16340 770799 241043 997443 117394 907957 61046 76708 8506 42448...
output:
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1
result:
wrong answer 1st lines differ - expected: '27151', found: '-1'
Test #7:
score: 0
Time Limit Exceeded
input:
10 38842382408 122926 58274862930 789360 16726511292 330607 15668542016 1208760580 96592451354 75808...
output:
449762 -1 -1 -1 -1 -1
result:
Test #8:
score: 0
Time Limit Exceeded
input:
10 73846452295 620455 50989527612 3728 51772807635 209471 41365167624 8035429152 43363365851 9425141...
output:
-1 2747 141180 -1 -1 -1
result:
Test #9:
score: 0
Time Limit Exceeded
input:
10 22120306776 495832 23247250178 6368 79562554490 19874 32734834718 98896643 35888384281 1089396855...
output:
-1 2296 13849 -1 -1 -1
result:
Test #10:
score: 0
Time Limit Exceeded
input:
10 28130589289 424875 45607070965 465767 66232968981 230686 61515248868 10509226440 11206266868 6337...
output:
-1 -1 183428 -1 -1 -1 -1
result:
Test #11:
score: 0
Time Limit Exceeded
input:
10 15236605640 131590 76773281826 193875 15881927534 233031 67113829687 7741608137 94088859866 21886...
output:
98603 125550 -1 -1 -1 -1
result:
Test #12:
score: 0
Time Limit Exceeded
input:
10 7747004498 66027 77954096635 182311 72636571992 134139 59371587772 3747319652 31741332987 1562357...
output:
44858 98972 114738 -1 -1 -1
result:
Test #13:
score: 0
Time Limit Exceeded
input:
10 52447944080 396920 85295225227 490427 16062740018 284170 31819067462 14385061650 73753430383 6315...
output:
231292 347717 -1 -1 -1 -1 4110438251
result:
Test #14:
score: 0
Time Limit Exceeded
input:
10 16458964082 785492 39210832198 308576 90579242995 566326 10156100741 1194736390 36992807117 63081...
output:
-1 -1 -1 -1 -1 -1 -1
result:
Test #15:
score: 0
Time Limit Exceeded
input:
10 74391702898 247604 46995162688 153603 30018150177 20343 33463692362 15774161781 33013896733 26419...
output:
209414 97806 16135 -1 -1 4164863092 -1
result:
Test #16:
score: 0
Time Limit Exceeded
input:
10 9024265051 320767 44078185701 360375 39291196937 277829 64756922755 6933411003 87474828658 305861...
output:
-1 222523 218015 -1 -1 -1
result:
Test #17:
score: 0
Time Limit Exceeded
input:
10 11798579336 148692 38029195164 131178 43979560651 741293 63898457237 179757607 92920236151 993757...
output:
77702 74539 -1 -1 -1 2408997891 -1
result:
Test #18:
score: 0
Time Limit Exceeded
input:
10 26479252755 224121 61958934862 353329 51905628528 766320 75618930758 1077079694 16217470987 11936...
output:
196315 282642 -1 -1 -1 -1 1749669689
result:
Test #19:
score: 0
Time Limit Exceeded
input:
10 90926376778 796138 73090609979 22899 60520918542 7052 16429107583 16429107583 94872820855 9778764...
output:
-1 20358 3966 16429107584 -1 -1
result:
Test #20:
score: 0
Time Limit Exceeded
input:
10 39325538660 300086 24194702624 301899 59825284594 104522 31201472810 4475319520 50985475546 24450...
output:
205520 -1 71387 -1 -1 -1