QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#410029#3161. Another Coin Weighing PuzzleohiostatescarletWA 1ms3580kbC++17900b2024-05-13 06:19:172024-05-13 06:19:18

Judging History

你现在查看的是最新测评结果

  • [2024-05-13 06:19:18]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3580kb
  • [2024-05-13 06:19:17]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define L long long
L MOD = 998244353ll;
L POW(L b, L p) {
  if (p == 0) return 1;
  L res = POW(b, p / 2);
  return ((res * res) % MOD * ((p&1)?b:1)) % MOD;
}


int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    L m, k;
    cin >> m >> k;
    vector<char> sieve(m+1, 0);
    vector<bool> sqr(m+1, 0);
    for (int i = 2; i <= m; i++) {
        if (!sieve[i]) {
            for (int j = i; j <= m; j += i) {
                sieve[j]++;
            }
            L s = ((L)i) * i;
            for (L j = s; j <= m; j += s) {
                sqr[j] = true;
            }
        }
    }
    L sol = 1;
    for (int i = 1; i <= k; i++) {
        if (!sqr[i]) {
            int mobius = (sieve[i]%2) ? -1 : 1;
            sol += mobius * (POW(2 * (k / i) + 1, m) - 1);
        }
    }
    cout << sol << '\n';
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

2 1

output:

9

result:

ok single line: '9'

Test #2:

score: 0
Accepted
time: 0ms
memory: 3496kb

input:

2 2

output:

17

result:

ok single line: '17'

Test #3:

score: -100
Wrong Answer
time: 1ms
memory: 3580kb

input:

10000 10000

output:

-14284442150

result:

wrong answer 1st lines differ - expected: '689223145', found: '-14284442150'