1 solutions

  • 0
    @ 2025-11-27 11:59:57

    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;
    }
    

    Information

    ID
    156
    Time
    1000ms
    Memory
    512MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By