QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#552864#9248. An Easy Math Problemucup-team1766#TL 0ms3476kbC++171.1kb2024-09-08 03:18:562024-09-08 03:18:58

Judging History

This is the latest submission verdict.

  • [2024-10-31 22:36:43]
  • hack成功,自动添加数据
  • (/hack/1098)
  • [2024-10-31 22:13:58]
  • hack成功,自动添加数据
  • (/hack/1096)
  • [2024-10-31 22:00:43]
  • hack成功,自动添加数据
  • (/hack/1095)
  • [2024-09-08 03:18:58]
  • Judged
  • Verdict: TL
  • Time: 0ms
  • Memory: 3476kb
  • [2024-09-08 03:18:56]
  • Submitted

answer

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

long long brute_force(map<long long, int> &freqs, vector<int> &mask, int cur) {
    if (cur == freqs.size()) {
        long long prod = 1;
        int cnt = 0;
        for (auto it = freqs.begin(); it != freqs.end(); it++) {
            if (mask[cnt] != 0) {
                prod *= it->second;
            }
            cnt++;
        }
        return prod;
    }
    long long res = 0;
    for (int i = 0; i < 3; i++) {
        mask[cur] = i;
        res += brute_force(freqs, mask, cur + 1);
    }
    return res;
}

void solve() {
    long long n;
    cin >> n;

    map<long long, int> freqs;
    for (long long i = 2; i * i <= n; i++) {
        while (n % i == 0) {
            freqs[i]++;
            n /= i;
        }
    }
    if (n > 1) {
        freqs[n]++;
    }

    vector<int> mask(freqs.size());
    long long res = brute_force(freqs, mask, 0);
    cout << (res - 1) / 2 + 1 << "\n";
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int t;
    cin >> t;
    while (t--) {
        solve();
    }
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3476kb

input:

10
1
2
3
4
5
6
7
8
9
10

output:

1
2
2
3
2
5
2
4
3
5

result:

ok 10 lines

Test #2:

score: -100
Time Limit Exceeded

input:

2000
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
6469693230
646969323...

output:


result: