Submission #40436772
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
long long gcd(long long x,long long y){
if (!y) return x;
return gcd(y,x%y);
}
long long dfs(long long x,long long y){
if (abs(x-y)==1) return min(x,y);
if (!x||!y) return 0;
if (x==y) return 1;
if (gcd(x,y)>1) return dfs(x/gcd(x,y)-1,y/gcd(x,y)-1)+1;
long long d = abs(x-y);
long long val = min(d,min(x,y));
for (int i=1;i<=d/i;i++){
if (d%i==0){
if (x%i==y%i&&gcd((x-x%i),(y-y%i))==i&&i>1){
val = min(val,x%i);
}
long long j = d/i;
if (x%j==y%j&&gcd((x-x%j),(y-y%j))==j&&j>1){
val = min(val,x%j);
}
}
}
return dfs(x-val,y-val)+val;
}
int main(){
long long x,y;
cin>>x>>y;
cout<<dfs(x,y);
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - GCD Subtraction |
| User | xjwwjx |
| Language | C++ (GCC 9.2.1) |
| Score | 400 |
| Code Size | 834 Byte |
| Status | AC |
| Exec Time | 22 ms |
| Memory | 3600 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 02_same_00.txt, 02_same_01.txt, 02_same_02.txt, 02_same_03.txt, 03_max_00.txt, 03_max_01.txt, 03_max_02.txt, 04_max2_00.txt, 04_max2_01.txt, 04_max2_02.txt, 04_max2_03.txt, 04_max2_04.txt, 04_max2_05.txt, 04_max2_06.txt, 04_max2_07.txt, 04_max2_08.txt, 04_max2_09.txt, 05_max3_00.txt, 05_max3_01.txt, 05_max3_02.txt, 05_max3_03.txt, 05_max3_04.txt, 05_max3_05.txt, 05_max3_06.txt, 05_max3_07.txt, 05_max3_08.txt, 05_max3_09.txt, 05_max3_10.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 7 ms | 3412 KiB |
| 00_sample_01.txt | AC | 6 ms | 3552 KiB |
| 00_sample_02.txt | AC | 8 ms | 3532 KiB |
| 01_rnd_00.txt | AC | 5 ms | 3564 KiB |
| 01_rnd_01.txt | AC | 12 ms | 3416 KiB |
| 01_rnd_02.txt | AC | 13 ms | 3368 KiB |
| 01_rnd_03.txt | AC | 12 ms | 3500 KiB |
| 01_rnd_04.txt | AC | 22 ms | 3600 KiB |
| 01_rnd_05.txt | AC | 8 ms | 3568 KiB |
| 01_rnd_06.txt | AC | 6 ms | 3416 KiB |
| 01_rnd_07.txt | AC | 20 ms | 3380 KiB |
| 01_rnd_08.txt | AC | 6 ms | 3500 KiB |
| 01_rnd_09.txt | AC | 9 ms | 3492 KiB |
| 02_same_00.txt | AC | 2 ms | 3496 KiB |
| 02_same_01.txt | AC | 2 ms | 3532 KiB |
| 02_same_02.txt | AC | 2 ms | 3524 KiB |
| 02_same_03.txt | AC | 3 ms | 3376 KiB |
| 03_max_00.txt | AC | 2 ms | 3524 KiB |
| 03_max_01.txt | AC | 3 ms | 3524 KiB |
| 03_max_02.txt | AC | 1 ms | 3548 KiB |
| 04_max2_00.txt | AC | 2 ms | 3524 KiB |
| 04_max2_01.txt | AC | 3 ms | 3544 KiB |
| 04_max2_02.txt | AC | 2 ms | 3504 KiB |
| 04_max2_03.txt | AC | 2 ms | 3532 KiB |
| 04_max2_04.txt | AC | 2 ms | 3380 KiB |
| 04_max2_05.txt | AC | 3 ms | 3532 KiB |
| 04_max2_06.txt | AC | 5 ms | 3596 KiB |
| 04_max2_07.txt | AC | 8 ms | 3532 KiB |
| 04_max2_08.txt | AC | 10 ms | 3556 KiB |
| 04_max2_09.txt | AC | 19 ms | 3504 KiB |
| 05_max3_00.txt | AC | 2 ms | 3528 KiB |
| 05_max3_01.txt | AC | 2 ms | 3496 KiB |
| 05_max3_02.txt | AC | 5 ms | 3368 KiB |
| 05_max3_03.txt | AC | 2 ms | 3408 KiB |
| 05_max3_04.txt | AC | 3 ms | 3428 KiB |
| 05_max3_05.txt | AC | 2 ms | 3520 KiB |
| 05_max3_06.txt | AC | 3 ms | 3568 KiB |
| 05_max3_07.txt | AC | 2 ms | 3544 KiB |
| 05_max3_08.txt | AC | 2 ms | 3412 KiB |
| 05_max3_09.txt | AC | 3 ms | 3592 KiB |
| 05_max3_10.txt | AC | 2 ms | 3412 KiB |