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
AC × 3
AC × 41
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