이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef long long lld;
lld a, b, p, q, dy[155][2];
void gcd(lld ix, lld x, lld y){
if(x<y)swap(x,y);
if(y==0){
dy[ix][0]=dy[ix][1]=0;
return;
}
gcd(ix+1, y, x%y);
if((p+dy[ix+1][0]-dy[ix+1][1])/q >= x/y)dy[ix][0]=q*(x/y)+dy[ix+1][1];
else dy[ix][0]=p+dy[ix+1][0];
if((p+dy[ix][0]-dy[ix+1][0])/q >= x/y)dy[ix][1]=q*(x/y)+dy[ix+1][0];
else dy[ix][1]=p+dy[ix][0];
}
int main(){
int t;
for(scanf("%d",&t); t--;){
scanf("%lld%lld%lld%lld", &a, &b, &p, &q);
gcd(0,a,b);
printf("%lld\n", dy[0][a<b]);
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |