QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#102592 | #5259. Skills in Pills | csw_ccc# | AC ✓ | 90ms | 11588kb | C++14 | 1.6kb | 2023-05-03 14:54:30 | 2023-05-03 14:54:34 |
Judging History
answer
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct point{
int x,y;
};
const int mxn=1000010;
int inf;
int i,j,k;
int x,y,z,xx,xy,xz,yx,yy,yz;
point px,py,pz;
int m,n,p;
int ma,mb;
int f[mxn],g[mxn];
int ans;
int gcd(int x,int y){
int z;
while(y){
x%=y;
z=x;
x=y;
y=z;
}
return x;
}
int lcm(int x,int y){
return x/gcd(x,y)*y;
}
point sol(int a,int b,int c){
if(b==0){
return (point){c/a,0};
}
if(a==0){
return (point){0,c/b};
}
point px=sol(b,a%b,c);
return (point){px.y,px.x-a/b*px.y};
}
int main(){
scanf("%d%d%d",&ma,&mb,&n);
memset(f,0x3f,sizeof(f));
memset(g,0x3f,sizeof(g));
ans=inf=f[0];
if(gcd(ma,mb)!=1){
if(n>=lcm(ma,mb)){
ans=min(n/ma+(n+1)/mb,(n+1)/ma+n/mb);
}else{
ans=n/ma+n/mb;
}
printf("%d\n",ans);
return 0;
}
x=lcm(ma,mb);
if(x>n){
ans=n/ma+n/mb;
printf("%d\n",ans);
return 0;
}
f[x]=x/ma+x/mb;
g[x]=f[x];
f[0]=g[0]=0;
for(i=1;i<=n;i++){
px=sol(-ma,mb,1);
x=(px.x%mb+mb)%mb*ma;
y=i+x;
if(y<=n){
z=f[i]+x/ma+(x+1)/mb;
f[y]=min(f[y],z);
g[y]=min(g[y],z);
}else{
ans=min(ans,f[i]+(n-i)/ma+(n-i+1)/mb);
}
px=sol(-mb,ma,1);
x=(px.x%ma+ma)%ma*mb;
y=i+x;
if(y<=n){
z=g[i]+(x+1)/ma+x/mb;
f[y]=min(f[y],z);
g[y]=min(g[y],z);
}else{
ans=min(ans,g[i]+(n-i+1)/ma+(n-i)/mb);
}
}
/*for(i=0;i<=n;i++){
x=f[i]+(n-i)/ma+(n-i+1)/mb;
y=g[i]+(n-i+1)/ma+(n-i)/mb;
ans=min(ans,min(x,y));
//if(f[i]<inf||g[i]<inf)printf("<>%d %d %d\n",i,f[i],g[i]);
}*/
printf("%d\n",ans);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 3ms
memory: 11588kb
input:
3 9 20
output:
8
result:
ok single line: '8'
Test #2:
score: 0
Accepted
time: 1ms
memory: 11396kb
input:
8 2 12
output:
7
result:
ok single line: '7'
Test #3:
score: 0
Accepted
time: 0ms
memory: 11324kb
input:
2 5 15
output:
10
result:
ok single line: '10'
Test #4:
score: 0
Accepted
time: 1ms
memory: 11320kb
input:
10 8 13
output:
2
result:
ok single line: '2'
Test #5:
score: 0
Accepted
time: 6ms
memory: 11384kb
input:
6 6 19
output:
6
result:
ok single line: '6'
Test #6:
score: 0
Accepted
time: 2ms
memory: 11584kb
input:
2 3 5
output:
3
result:
ok single line: '3'
Test #7:
score: 0
Accepted
time: 3ms
memory: 11408kb
input:
4 2 8
output:
6
result:
ok single line: '6'
Test #8:
score: 0
Accepted
time: 2ms
memory: 11384kb
input:
5 5 5
output:
2
result:
ok single line: '2'
Test #9:
score: 0
Accepted
time: 0ms
memory: 11572kb
input:
3 8 11
output:
4
result:
ok single line: '4'
Test #10:
score: 0
Accepted
time: 4ms
memory: 11404kb
input:
5 8 16
output:
5
result:
ok single line: '5'
Test #11:
score: 0
Accepted
time: 0ms
memory: 11328kb
input:
9 7 279
output:
70
result:
ok single line: '70'
Test #12:
score: 0
Accepted
time: 0ms
memory: 11320kb
input:
8 3 56
output:
25
result:
ok single line: '25'
Test #13:
score: 0
Accepted
time: 1ms
memory: 11284kb
input:
5 9 46
output:
14
result:
ok single line: '14'
Test #14:
score: 0
Accepted
time: 1ms
memory: 11336kb
input:
8 4 251
output:
93
result:
ok single line: '93'
Test #15:
score: 0
Accepted
time: 2ms
memory: 11548kb
input:
8 7 41
output:
10
result:
ok single line: '10'
Test #16:
score: 0
Accepted
time: 1ms
memory: 11328kb
input:
60 17 360
output:
27
result:
ok single line: '27'
Test #17:
score: 0
Accepted
time: 0ms
memory: 11548kb
input:
16 55 388
output:
31
result:
ok single line: '31'
Test #18:
score: 0
Accepted
time: 1ms
memory: 11328kb
input:
25 38 292
output:
18
result:
ok single line: '18'
Test #19:
score: 0
Accepted
time: 0ms
memory: 11504kb
input:
22 59 177
output:
11
result:
ok single line: '11'
Test #20:
score: 0
Accepted
time: 1ms
memory: 11408kb
input:
4 3 82
output:
50
result:
ok single line: '50'
Test #21:
score: 0
Accepted
time: 60ms
memory: 11328kb
input:
77 18 511543
output:
35070
result:
ok single line: '35070'
Test #22:
score: 0
Accepted
time: 90ms
memory: 11412kb
input:
37 32 987861
output:
57612
result:
ok single line: '57612'
Test #23:
score: 0
Accepted
time: 36ms
memory: 11288kb
input:
29 8 300899
output:
48059
result:
ok single line: '48059'
Test #24:
score: 0
Accepted
time: 49ms
memory: 11392kb
input:
73 83 533839
output:
13745
result:
ok single line: '13745'
Test #25:
score: 0
Accepted
time: 18ms
memory: 11408kb
input:
12 23 181193
output:
23008
result:
ok single line: '23008'
Test #26:
score: 0
Accepted
time: 4ms
memory: 11332kb
input:
2 2 864514
output:
864514
result:
ok single line: '864514'
Test #27:
score: 0
Accepted
time: 18ms
memory: 11548kb
input:
27 7 165249
output:
29765
result:
ok single line: '29765'
Test #28:
score: 0
Accepted
time: 47ms
memory: 11376kb
input:
15 2 751665
output:
429522
result:
ok single line: '429522'
Test #29:
score: 0
Accepted
time: 1ms
memory: 11584kb
input:
2 16 818146
output:
460207
result:
ok single line: '460207'
Test #30:
score: 0
Accepted
time: 47ms
memory: 11392kb
input:
43 88 631366
output:
21860
result:
ok single line: '21860'
Test #31:
score: 0
Accepted
time: 1ms
memory: 11320kb
input:
215 1222 3597
output:
18
result:
ok single line: '18'
Test #32:
score: 0
Accepted
time: 4ms
memory: 11408kb
input:
9619 3375 604892
output:
241
result:
ok single line: '241'
Test #33:
score: 0
Accepted
time: 2ms
memory: 11580kb
input:
861 1924 311511
output:
522
result:
ok single line: '522'
Test #34:
score: 0
Accepted
time: 1ms
memory: 11408kb
input:
9249 3782 866972
output:
322
result:
ok single line: '322'
Test #35:
score: 0
Accepted
time: 1ms
memory: 11376kb
input:
7055 8386 206874
output:
53
result:
ok single line: '53'
Test #36:
score: 0
Accepted
time: 6ms
memory: 11324kb
input:
6273 7732 122377
output:
34
result:
ok single line: '34'
Test #37:
score: 0
Accepted
time: 2ms
memory: 11396kb
input:
8057 7746 89137
output:
22
result:
ok single line: '22'
Test #38:
score: 0
Accepted
time: 2ms
memory: 11372kb
input:
9215 8952 74618
output:
16
result:
ok single line: '16'
Test #39:
score: 0
Accepted
time: 0ms
memory: 11284kb
input:
7246 3709 129579
output:
51
result:
ok single line: '51'
Test #40:
score: 0
Accepted
time: 1ms
memory: 11320kb
input:
4052 6785 831888
output:
327
result:
ok single line: '327'
Test #41:
score: 0
Accepted
time: 9ms
memory: 11408kb
input:
9 2 91067
output:
56916
result:
ok single line: '56916'
Test #42:
score: 0
Accepted
time: 55ms
memory: 11396kb
input:
10 3 913595
output:
406041
result:
ok single line: '406041'
Test #43:
score: 0
Accepted
time: 1ms
memory: 11588kb
input:
2 2 152575
output:
152575
result:
ok single line: '152575'
Test #44:
score: 0
Accepted
time: 5ms
memory: 11380kb
input:
2 2 927771
output:
927771
result:
ok single line: '927771'
Test #45:
score: 0
Accepted
time: 39ms
memory: 11396kb
input:
6 7 637014
output:
200204
result:
ok single line: '200204'
Test #46:
score: 0
Accepted
time: 54ms
memory: 11584kb
input:
5 3 721417
output:
400786
result:
ok single line: '400786'
Test #47:
score: 0
Accepted
time: 11ms
memory: 11324kb
input:
5 9 183079
output:
57538
result:
ok single line: '57538'
Test #48:
score: 0
Accepted
time: 37ms
memory: 11336kb
input:
9 2 579290
output:
362055
result:
ok single line: '362055'
Test #49:
score: 0
Accepted
time: 35ms
memory: 11504kb
input:
3 4 546909
output:
341817
result:
ok single line: '341817'
Test #50:
score: 0
Accepted
time: 0ms
memory: 11404kb
input:
2 2 932611
output:
932611
result:
ok single line: '932611'