QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#89279 | #5259. Skills in Pills | dalfasewf | WA | 71ms | 3548kb | C++14 | 1.6kb | 2023-03-19 15:23:49 | 2023-03-19 15:23:54 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[2000009];
ll n,m,k,x,y;
ll cnt,ans;
map<ll,ll>L,R;
ll f(ll e,ll cx,ll cy){
return (n-e+cx)/x+(n-e+cy)/y;
}
int main()
{
ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
ll i,j,t;
t=0;
cin>>x>>y>>n;
if(x==y){
cout<<n/x+(n+1)/x;
return 0;
}
for(i=1;i<=1000000;i++){
if(!L[x*i%y])L[x*i%y]=i;
if(!R[y*i%x])R[y*i%x]=i;
}
ll l=0,r=0;
i=x,j=y;
ll sx=0,sy=0;
while(1){
ll e;
if(sx==sy)e=L[0]*x+sx;
else if(sx<sy){
if(!R[x-1]){
ans+=(n-sx)/x+(n-sy)/y;
break;
}
e=R[x-1]*y+sy;
}
else {
if(!L[y-1]){
ans+=(n-sx)/x+(n-sy)/y;
break;
}
e=L[y-1]*x+sx;
}
// cout<<e<<"\n";
if(e>=n){
ans+=(n-sx)/x+(n-sy)/y;
break;
}
if(sx==sy)ans+=L[0]+R[0];
else if(sx<sy)ans+=R[x-1]+(e-sx)/x;
else ans+=L[y-1]+(e-sy)/y;
// cout<<"A: "<<ans<<"\n";
if(f(e,1,0)<f(e,0,1)){//x左移
// cout<<"X\n";
sx=e-1;
sy=e;
}
else if(f(e,1,0)>f(e,0,1)){//y左移
// cout<<"Y\n";
sx=e;
sy=e-1;
}
else {
sx=sy=e;
if(x%2==0)sy--;
else sx--;
t++;
}
// cout<<sx<<" "<<sy<<"\n";
}
cout<<ans;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 20ms
memory: 3528kb
input:
3 9 20
output:
8
result:
ok single line: '8'
Test #2:
score: 0
Accepted
time: 22ms
memory: 3488kb
input:
8 2 12
output:
7
result:
ok single line: '7'
Test #3:
score: 0
Accepted
time: 22ms
memory: 3360kb
input:
2 5 15
output:
10
result:
ok single line: '10'
Test #4:
score: 0
Accepted
time: 22ms
memory: 3324kb
input:
10 8 13
output:
2
result:
ok single line: '2'
Test #5:
score: 0
Accepted
time: 2ms
memory: 3372kb
input:
6 6 19
output:
6
result:
ok single line: '6'
Test #6:
score: 0
Accepted
time: 17ms
memory: 3296kb
input:
2 3 5
output:
3
result:
ok single line: '3'
Test #7:
score: 0
Accepted
time: 16ms
memory: 3548kb
input:
4 2 8
output:
6
result:
ok single line: '6'
Test #8:
score: 0
Accepted
time: 2ms
memory: 3372kb
input:
5 5 5
output:
2
result:
ok single line: '2'
Test #9:
score: 0
Accepted
time: 23ms
memory: 3260kb
input:
3 8 11
output:
4
result:
ok single line: '4'
Test #10:
score: 0
Accepted
time: 19ms
memory: 3528kb
input:
5 8 16
output:
5
result:
ok single line: '5'
Test #11:
score: 0
Accepted
time: 23ms
memory: 3360kb
input:
9 7 279
output:
70
result:
ok single line: '70'
Test #12:
score: 0
Accepted
time: 25ms
memory: 3368kb
input:
8 3 56
output:
25
result:
ok single line: '25'
Test #13:
score: 0
Accepted
time: 23ms
memory: 3400kb
input:
5 9 46
output:
14
result:
ok single line: '14'
Test #14:
score: 0
Accepted
time: 21ms
memory: 3528kb
input:
8 4 251
output:
93
result:
ok single line: '93'
Test #15:
score: 0
Accepted
time: 19ms
memory: 3360kb
input:
8 7 41
output:
10
result:
ok single line: '10'
Test #16:
score: 0
Accepted
time: 70ms
memory: 3368kb
input:
60 17 360
output:
27
result:
ok single line: '27'
Test #17:
score: 0
Accepted
time: 66ms
memory: 3492kb
input:
16 55 388
output:
31
result:
ok single line: '31'
Test #18:
score: 0
Accepted
time: 67ms
memory: 3376kb
input:
25 38 292
output:
18
result:
ok single line: '18'
Test #19:
score: 0
Accepted
time: 69ms
memory: 3496kb
input:
22 59 177
output:
11
result:
ok single line: '11'
Test #20:
score: 0
Accepted
time: 21ms
memory: 3372kb
input:
4 3 82
output:
50
result:
ok single line: '50'
Test #21:
score: 0
Accepted
time: 71ms
memory: 3308kb
input:
77 18 511543
output:
35070
result:
ok single line: '35070'
Test #22:
score: -100
Wrong Answer
time: 68ms
memory: 3316kb
input:
37 32 987861
output:
57624
result:
wrong answer 1st lines differ - expected: '57612', found: '57624'