为啥暴力会 RE + WA + TLE
查看原帖
为啥暴力会 RE + WA + TLE
574944
Micnation_AFO楼主2022/3/27 10:07

rt,0pts,是我的代码有问题吗?感觉是判 -1 的时候出了问题,求 hack

#include <bits/stdc++.h>
using namespace std;

#define int long long
int T;

int read() {
    int x = 0, f = 1;
    char ch = getchar();
    while (ch < '0' || ch > '9') { f = (ch == '-') ? -1 : f; ch = getchar(); }
    while (ch >= '0' && ch <= '9') { x = x * 10 + ch - '0'; ch = getchar(); }
    return x * f;
}

int gcd(int x, int y) {
    if (x % y == 0) return y;
    else return gcd(y, x % y);
}

signed main() {
    //freopen("math.in", "r", stdin);
    //freopen("math.out", "w", stdout);
    T = read();
    while (T--) {
        int x, y, z;
        bool flag = false;
        cin >> x >> z;
        for (int i = pow(z, 1.0 / 3); i * i * i >= 1; i--) {
            if (z % (i * i * i) != 0) continue;
            int y = z / (i * i * i) / (x / i) * i;
            if (y != 0) cout << y << endl, flag = true;
            break;
        }
        if (!flag) cout << -1 << endl;
    }
    return 0;
}
2022/3/27 10:07
加载中...