QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#619734 | #6694. Math Problem | highkj | WA | 102ms | 4056kb | C++11 | 2.0kb | 2024-10-07 15:12:40 | 2024-10-07 15:12:42 |
Judging History
answer
#include <bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#include <ext/rope>
using namespace __gnu_pbds;
using namespace std;
#define pb push_back
#define rep(i,x,y) for(register int i=x;i<=y;i++)
#define rep1(i,x,y) for(register int i=x;i>=y;--i)
#define int __int128
#define fire signed
#define il inline
template<class T> il void print(T x) {
if(x<0) printf("-"),x=-x;
if (x > 9) print(x / 10);
putchar(x % 10 + '0');
}
const int bufsize = 230005;
char buf[bufsize], *f1, *f2;
#define getchar() (f1 == f2 && (f2 = buf + fread(f1 = buf, 1, bufsize, stdin)) == buf? EOF: *f1++)
template<class T> il void in(T &x) {
x = 0; char ch = getchar();
int f = 1;
while (ch < '0' || ch > '9') {if(ch=='-') f = -1; ch = getchar(); }
while (ch >= '0' && ch <= '9') { x = (x << 3) + (x << 1) + (ch ^ 48); ch = getchar(); }
x *= f;
}
int T=1;
int n,k,m,a,b,res;
__int128 qmi(__int128 x,int y) {
__int128 res=1;
while(y) {
if(y&1) res=res*x;
x=x*x;
y>>=1;
}return res;
}
bool check(int c,int n,__int128 m) {
__int128 now=(__int128)(qmi(k,c)*n);
m=(m+now-1)/m*m;
m-=now;
rep1(i,c-1,1) {
now=qmi(k,i);
m-=min(k-1,(int)(m/now))*now;
}
return (m<=k-1);
}
int cc(int k,int x,int r) {
r/=x;
int cnt=false;
while(r) r/=k,cnt++;
return cnt;
}
int gets(int x,int y) {
int l=1,r=8,res=INT_MAX;
rep(i,l,r) if(check(i,x,y)) res=min(res,i);
return res*a;
}
void solve() {
in(n),in(k),in(m),in(a),in(b);
if(n%m==0) {
cout<<"0\n";
return;
}else if(k==1) {
puts("-1");
return;
}
res=LONG_LONG_MAX;
int now=0;
while(n) {
res=min(res,now+gets(n,m));
n/=k;
now+=b;
if(n%m==0) res=min(res,now);
}
res=min(res,now);
print(res);
cout<<endl;
}
fire main() {
// freopen("transform.in","r",stdin);
// freopen("transform.out","w",stdout);
in(T);
while(T--) {
solve();
}
return false;
}
/*
1
2157584874927409 3499113 70686381 77518537 690462406
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3596kb
input:
4 101 4 207 3 5 8 3 16 100 1 114 514 19 19 810 1 1 3 1 1
output:
11 2 0 -1
result:
ok 4 number(s): "11 2 0 -1"
Test #2:
score: 0
Accepted
time: 60ms
memory: 3816kb
input:
100000 9 5 7 7674 78731 4 3 4 58482 93736 1 4 3 42396 22960 6 2 2 4534 73466 5 7 7 56203 19376 1 7 10 77129 84094 8 3 3 72793 89258 10 10 3 94847 42455 7 4 7 79273 90760 2 7 3 78496 99140 4 4 9 47018 14651 3 7 8 60936 4453 8 6 4 57267 6293 8 7 3 81697 99664 2 10 10 3935 30951 8 9 7 91391 70670 5 8 8...
output:
7674 0 22960 0 19376 77129 72793 84910 0 78496 29302 4453 0 81697 3935 70670 36522 21244 0 0 0 100934 30063 0 57852 31894 72016 6193 9486 2516 27536 0 7306 73625 11302 13802 41343 50014 58015 38743 65165 38963 26747 0 42044 45733 63574 69321 34196 1674 27200 8130 0 46609 53621 11696 7808 4630 10051 ...
result:
ok 100000 numbers
Test #3:
score: 0
Accepted
time: 102ms
memory: 4056kb
input:
100000 72 56 61 725468539 908406897 78 7 86 485275009 977836982 25 57 29 104624183 334780226 48 74 44 805881518 26082346 87 26 31 224468594 59732782 55 29 99 697738785 876206855 96 85 8 998474252 490312988 11 22 7 298977007 759215221 43 72 22 785798936 836075792 16 16 29 304049814 445858780 86 24 36...
output:
725468539 970550018 104624183 26082346 119465564 1395477570 0 298977007 785798936 304049814 488620044 1112696878 150581202 929490259 258912618 156420265 767475208 623063452 158730933 211070701 576023224 525233 66950902 893398127 1538977472 552877592 365438928 274813702 347240596 413914126 411352478 ...
result:
ok 100000 numbers
Test #4:
score: -100
Wrong Answer
time: 89ms
memory: 3796kb
input:
100000 151 859 413 113296245 501509373 721 797 951 199093180 857704079 864 743 424 944343390 211412511 537 561 510 160063507 371248812 67 101 1000 982073931 983924207 224 620 106 988167382 31695532 388 496 373 179680114 906477657 463 865 318 568083479 906936536 409 549 816 183391318 716459594 871 83...
output:
113296245 199093180 422825022 160063507 983924207 31695532 179680114 568083479 366782636 353991726 424999871 270298556 845830412 171200301 342928747 708513732 1071693358 495915588 91647563 423066800 629029877 532122044 903837970 923069546 30892184 342614734 344281675 92814148 8303547 371747405 58158...
result:
wrong answer 1607th numbers differ - expected: '378425178', found: '597370009'