QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#285606 | #5259. Skills in Pills | light_ink_dots# | AC ✓ | 8ms | 113084kb | C++14 | 2.7kb | 2023-12-16 20:41:14 | 2023-12-16 20:41:15 |
Judging History
answer
#include<iostream>
#include<cstring>
#include<algorithm>
// #include<c//assert>
#include<vector>
using namespace std;
#define int long long
int n,k,j;
int prek,prej;
int res[5][2000000];
pair<int,int> Answ(int p1,int p2){
prek=p1,prej=p2;
int ed=0;
int ans=0;
int fl=0;
if(p1==1&&p2==2) fl=0;
else if(p1==2&&p2==1) fl=1;
else fl=2;
for(int i=2;i<=n+2;i++){
// cerr<<"? "<<i<<" "<<prej<<" "<<prek<<" "<<endl;
if(i-prek==k&&i-prej==j){
ed=i;break;
}
if(i-prek==k) prek=i,ans++;
if(i-prej==j) prej=i,ans++;
res[fl][i-2]=ans;
}
//2->ed
return make_pair(ed-2,ans);
}
int dp[2000000][2];
// namespace S{
// int dp[200][120][120];
// int main(){
// memset(dp,63,sizeof(dp));
// dp[0][0][0]=0;
// for(int i=1;i<=n;i++){
// for(int a=0;a<j;a++){
// for(int b=0;b<k;b++){
// //not choose
// dp[i][a+1][b+1]=min(dp[i][a+1][b+1],dp[i-1][a][b]);
// dp[i][0][b+1]=min(dp[i][0][b+1],dp[i-1][a][b]+1);
// dp[i][a+1][0]=min(dp[i][a+1][0],dp[i-1][a][b]+1);
// }
// }
// }
// int mins=1e9;
// for(int a=0;a<j;a++){
// for(int b=0;b<k;b++) {
// mins=min(mins,dp[n][a][b]);
// // if(mins==15) cerr<<
// }
// }
// cerr<<"?? "<<mins<<endl;
// return mins;
// }
// }
int32_t main(){
cin>>k>>j>>n;
memset(res,63,sizeof(res));
int fir=1ll*k*j/__gcd(k,j);
if(k==j){
int ans=n/k*2;if(n%k==k-1) ans++;
cout<<ans<<endl;
//assert(ans==S::main());
return 0;
}
cerr<<"?? "<<k*j/__gcd(k,j)<<endl;
if(1ll*k*j/__gcd(k,j)>n){
auto[a,b]=Answ(2,2);
//assert(a==-2);
//assert(b==S::main());
cout<<b<<'\n';return 0;
}
auto[L0,w0]=Answ(2,2);
// exit(0);
auto[L1,w1]=Answ(1,2);
auto[L2,w2]=Answ(2,1);
memset(dp,63,sizeof(dp));
cerr<<"?? "<<L0<<" "<<w0<<endl;
dp[L0][0]=dp[L0][1]=2+w0;
for(int i=fir;i<=n;i++){
dp[i+L1][0]=min(dp[i+L1][0],dp[i][0]+w1+2);
dp[i+L1][1]=min(dp[i+L1][1],dp[i][0]+w1+2);
dp[i+L2][0]=min(dp[i+L2][0],dp[i][0]+w2+2);
dp[i+L2][1]=min(dp[i+L2][1],dp[i][0]+w2+2);
// dp[i+L1][0]=min(dp[i+L1][0],dp[i][0]+w1);
}
int ans=1e9;
// cerr<<"?? "
for(int i=1;i<=n;i++){
ans=min(ans,dp[i][0]+res[0][n-i]);
ans=min(ans,dp[i][1]+res[1][n-i]);
}
cout<<ans<<endl;
// cout<<ans<<" "<<L0<<endl;
//assert(ans==S::main());
}
//3 5 28
// /2 3 8
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 113012kb
input:
3 9 20
output:
8
result:
ok single line: '8'
Test #2:
score: 0
Accepted
time: 6ms
memory: 112988kb
input:
8 2 12
output:
7
result:
ok single line: '7'
Test #3:
score: 0
Accepted
time: 7ms
memory: 113032kb
input:
2 5 15
output:
10
result:
ok single line: '10'
Test #4:
score: 0
Accepted
time: 3ms
memory: 82484kb
input:
10 8 13
output:
2
result:
ok single line: '2'
Test #5:
score: 0
Accepted
time: 0ms
memory: 82300kb
input:
6 6 19
output:
6
result:
ok single line: '6'
Test #6:
score: 0
Accepted
time: 5ms
memory: 82340kb
input:
2 3 5
output:
3
result:
ok single line: '3'
Test #7:
score: 0
Accepted
time: 7ms
memory: 113032kb
input:
4 2 8
output:
6
result:
ok single line: '6'
Test #8:
score: 0
Accepted
time: 0ms
memory: 83480kb
input:
5 5 5
output:
2
result:
ok single line: '2'
Test #9:
score: 0
Accepted
time: 0ms
memory: 82856kb
input:
3 8 11
output:
4
result:
ok single line: '4'
Test #10:
score: 0
Accepted
time: 3ms
memory: 82336kb
input:
5 8 16
output:
5
result:
ok single line: '5'
Test #11:
score: 0
Accepted
time: 3ms
memory: 113008kb
input:
9 7 279
output:
70
result:
ok single line: '70'
Test #12:
score: 0
Accepted
time: 0ms
memory: 112936kb
input:
8 3 56
output:
25
result:
ok single line: '25'
Test #13:
score: 0
Accepted
time: 4ms
memory: 113000kb
input:
5 9 46
output:
14
result:
ok single line: '14'
Test #14:
score: 0
Accepted
time: 8ms
memory: 113004kb
input:
8 4 251
output:
93
result:
ok single line: '93'
Test #15:
score: 0
Accepted
time: 8ms
memory: 82224kb
input:
8 7 41
output:
10
result:
ok single line: '10'
Test #16:
score: 0
Accepted
time: 3ms
memory: 82660kb
input:
60 17 360
output:
27
result:
ok single line: '27'
Test #17:
score: 0
Accepted
time: 0ms
memory: 82692kb
input:
16 55 388
output:
31
result:
ok single line: '31'
Test #18:
score: 0
Accepted
time: 0ms
memory: 82776kb
input:
25 38 292
output:
18
result:
ok single line: '18'
Test #19:
score: 0
Accepted
time: 3ms
memory: 83576kb
input:
22 59 177
output:
11
result:
ok single line: '11'
Test #20:
score: 0
Accepted
time: 0ms
memory: 113008kb
input:
4 3 82
output:
50
result:
ok single line: '50'
Test #21:
score: 0
Accepted
time: 0ms
memory: 112932kb
input:
77 18 511543
output:
35070
result:
ok single line: '35070'
Test #22:
score: 0
Accepted
time: 4ms
memory: 112952kb
input:
37 32 987861
output:
57612
result:
ok single line: '57612'
Test #23:
score: 0
Accepted
time: 7ms
memory: 112932kb
input:
29 8 300899
output:
48059
result:
ok single line: '48059'
Test #24:
score: 0
Accepted
time: 3ms
memory: 112996kb
input:
73 83 533839
output:
13745
result:
ok single line: '13745'
Test #25:
score: 0
Accepted
time: 7ms
memory: 113056kb
input:
12 23 181193
output:
23008
result:
ok single line: '23008'
Test #26:
score: 0
Accepted
time: 8ms
memory: 83696kb
input:
2 2 864514
output:
864514
result:
ok single line: '864514'
Test #27:
score: 0
Accepted
time: 8ms
memory: 113084kb
input:
27 7 165249
output:
29765
result:
ok single line: '29765'
Test #28:
score: 0
Accepted
time: 7ms
memory: 113056kb
input:
15 2 751665
output:
429522
result:
ok single line: '429522'
Test #29:
score: 0
Accepted
time: 4ms
memory: 113036kb
input:
2 16 818146
output:
460207
result:
ok single line: '460207'
Test #30:
score: 0
Accepted
time: 3ms
memory: 112984kb
input:
43 88 631366
output:
21860
result:
ok single line: '21860'
Test #31:
score: 0
Accepted
time: 3ms
memory: 82800kb
input:
215 1222 3597
output:
18
result:
ok single line: '18'
Test #32:
score: 0
Accepted
time: 8ms
memory: 83220kb
input:
9619 3375 604892
output:
241
result:
ok single line: '241'
Test #33:
score: 0
Accepted
time: 0ms
memory: 82316kb
input:
861 1924 311511
output:
522
result:
ok single line: '522'
Test #34:
score: 0
Accepted
time: 0ms
memory: 83460kb
input:
9249 3782 866972
output:
322
result:
ok single line: '322'
Test #35:
score: 0
Accepted
time: 0ms
memory: 82020kb
input:
7055 8386 206874
output:
53
result:
ok single line: '53'
Test #36:
score: 0
Accepted
time: 3ms
memory: 83600kb
input:
6273 7732 122377
output:
34
result:
ok single line: '34'
Test #37:
score: 0
Accepted
time: 0ms
memory: 82036kb
input:
8057 7746 89137
output:
22
result:
ok single line: '22'
Test #38:
score: 0
Accepted
time: 7ms
memory: 82024kb
input:
9215 8952 74618
output:
16
result:
ok single line: '16'
Test #39:
score: 0
Accepted
time: 0ms
memory: 83600kb
input:
7246 3709 129579
output:
51
result:
ok single line: '51'
Test #40:
score: 0
Accepted
time: 4ms
memory: 83008kb
input:
4052 6785 831888
output:
327
result:
ok single line: '327'
Test #41:
score: 0
Accepted
time: 3ms
memory: 113084kb
input:
9 2 91067
output:
56916
result:
ok single line: '56916'
Test #42:
score: 0
Accepted
time: 7ms
memory: 113012kb
input:
10 3 913595
output:
406041
result:
ok single line: '406041'
Test #43:
score: 0
Accepted
time: 3ms
memory: 81800kb
input:
2 2 152575
output:
152575
result:
ok single line: '152575'
Test #44:
score: 0
Accepted
time: 3ms
memory: 82620kb
input:
2 2 927771
output:
927771
result:
ok single line: '927771'
Test #45:
score: 0
Accepted
time: 7ms
memory: 113060kb
input:
6 7 637014
output:
200204
result:
ok single line: '200204'
Test #46:
score: 0
Accepted
time: 3ms
memory: 113036kb
input:
5 3 721417
output:
400786
result:
ok single line: '400786'
Test #47:
score: 0
Accepted
time: 4ms
memory: 113036kb
input:
5 9 183079
output:
57538
result:
ok single line: '57538'
Test #48:
score: 0
Accepted
time: 8ms
memory: 113048kb
input:
9 2 579290
output:
362055
result:
ok single line: '362055'
Test #49:
score: 0
Accepted
time: 4ms
memory: 112936kb
input:
3 4 546909
output:
341817
result:
ok single line: '341817'
Test #50:
score: 0
Accepted
time: 3ms
memory: 83584kb
input:
2 2 932611
output:
932611
result:
ok single line: '932611'