暂未完成,预计时间:可能完不成了。

OOOOOOOOrz wyy

L

CF730 Div.2 (A-C)

A

题目解释:

给定两个数 a 和 b,你可以将它们同时加上 k 或减去 k (k 取任意值),问保证最大的最大公因数情况下,题目设问k 最小值多少。此外,若最大公因数可为无限大,输出0 0

题目解析:

不难想到当有公因数$res$时,$a \% res = 0 \& b\%res=0$.

所以有$(a-b) \%res=0$

那么当$a-b=res即有最大值$。

另出现0 0的情况为$a=b$

// Problem: A. Exciting Bets
// Contest: Codeforces - Codeforces Round #730 (Div. 2)
// URL: https://codeforces.com/contest/1543/problem/A
// Memory Limit: 256 MB
// Time Limit: 1000 ms
 
#include <iostream>
#include <cstdio>
 
using namespace std;
 
long long abss(long long a)
{
    if (a < 0)
    {
        return -a;
    }
    return a;
}
 
int main()
{
    int t;
    cin >> t;
    while (t -- )
    {
        long long n, m;
        cin >> n >> m;
        long long t = abss(n - m);
        if (t == 0)
        {
            cout << "0 0" << endl;
            continue;
        }
        cout << t << " ";
        cout << min(abs(n % t), t - abs(n % t)) << endl;
    }
    return 0;
}

OK....第一篇题解写完了,剩下的是不是就不用写了!

最后修改:2021 年 07 月 12 日
End.