1 条题解

  • 0
    @ 2026-4-5 20:14:06

    C++ :

    #include <algorithm>
    #include <cstdio>
    
    using namespace std;
    
    const int M = 1e5 + 5;
    
    int n, p, q;
    int a, b;
    int ans;
    
    int gcd(int a, int b) {
        if (!a || !b) return a + b;
        return gcd(b, a % b);
    }
    
    int main() {
        scanf("%d%d%d", &n, &p, &q);
        while (n--) {
            scanf("%d%d", &a, &b);
            if (a == b)
                ans = 0;
            else if (a == 1 || b == 1)
                ans = p;
            else {
                ans = min(p + p, q + q);
                if (gcd(a, b) == 1)
                    ans = min(ans, p);
                else
                    ans = min(ans, q);
            }
            printf("%d\n", ans);
        }
        return 0;
    }
    

    信息

    ID
    749
    时间
    1000ms
    内存
    512MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者