求调!!Qwq
查看原帖
求调!!Qwq
911026
jaspersgr114514楼主2025/7/23 14:13
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n;
int m1, m2;
int s[30005];
vector<pair<int, int>> mm;
signed main()
{
    cin >> n;
    cin >> m1 >> m2;
    for (int i = 1; i <= n; i++)
        cin >> s[i];
    int ks = m1;
    for (int i = 2; i <= sqrt(m1); i++)
    {
        int cnt1 = 0;
        while (ks % i == 0 && ks)
        {
            cnt1++;
            ks /= i;
        }
        mm.push_back({i, cnt1 * m2});
    }
    bool can = false;
    int ans = 0;
    int cnt_mm = 1;
    for (int i = 1; i <= n; i++)
    {
        int tmp = 0;
        for (int j = 2; j <= sqrt(s[i]); j++)
        {
            if (mm[cnt_mm].first != j)
                continue;
            else
                cnt_mm++;
            if (s[i] % j != 0)
                continue;
            if (!can)
                can = true;
            int k = mm[cnt_mm - 1].second;
            int ks = s[i];
            int cc = 0;
            while (ks && ks % j == 0)
                cc++, ks /= j;
            double k_ = k;
            double cc_ = cc;
            int kkk = ceil(1.0 * k_ / cc_);
            tmp = max(tmp, kkk);
        }
        ans = max(tmp, ans);
    }
    if (!can)
        cout << -1 << endl;
    else
        cout << ans + 1 << endl;
}

3*RE

2*AC

5*WA

20pts

2025/7/23 14:13
加载中...