QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#197524#6512. Completely Multiplicative Functionvanthoci#WA 31ms3620kbC++171.4kb2023-10-02 16:47:052023-10-02 16:47:05

Judging History

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

  • [2023-10-02 16:47:05]
  • 评测
  • 测评结果:WA
  • 用时:31ms
  • 内存:3620kb
  • [2023-10-02 16:47:05]
  • 提交

answer

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


struct solution{
    int n, k, x;
    vector<bool> neg, vis;

    inline int doit(int x){
        int res = 0;
        for (i64 i = x; i <= n; i *= x){
            for (int j = i; j <= n; j += i){
                vis[j] = true;
                neg[j] = !neg[j];
                res += neg[j] ? 1 : -1;
            }
        }
        return res;
    }

    solution(){
        cin >> n >> k;
        // n = nn, k = kk;
        if ((n - k) % 2) {
            cout << -1 << '\n';
            return;
        }
        x = (n - k) / 2;
        neg.assign(n + 1, false);
        vis.assign(n + 1, false);

        int sum = 0;
        for (int i = 2; i <= n; i++) {
            if (vis[i]) continue;
            int cnt = doit(i);
            if(cnt < 0){
                // cout << i << endl;
                continue;
                // assert(cnt >= 0);
            }
            if (sum + cnt > x) doit(i);
            else sum += cnt;
        }

        for (int i = 1; i <= n; i++) {
            cout << (neg[i] ? -1 : 1) << ' ';
        }
        // cout << n - sum * 2;
        cout << '\n';

    }
};

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int T; cin >> T;
    while (T--) solution();
    // for (int i = 2; i <= 100; i+=2) solution(100'000, i);
    return 0;
}

詳細信息

Test #1:

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

input:

4
4 2
10 0
10 1
10 10

output:

1 -1 1 1 
1 -1 -1 1 -1 1 -1 -1 1 1 
-1
1 1 1 1 1 1 1 1 1 1 

result:

ok ok (4 test cases)

Test #2:

score: -100
Wrong Answer
time: 31ms
memory: 3620kb

input:

11475
1 0
1 1
2 0
2 1
2 2
3 0
3 1
3 2
3 3
4 0
4 1
4 2
4 3
4 4
5 0
5 1
5 2
5 3
5 4
5 5
6 0
6 1
6 2
6 3
6 4
6 5
6 6
7 0
7 1
7 2
7 3
7 4
7 5
7 6
7 7
8 0
8 1
8 2
8 3
8 4
8 5
8 6
8 7
8 8
9 0
9 1
9 2
9 3
9 4
9 5
9 6
9 7
9 8
9 9
10 0
10 1
10 2
10 3
10 4
10 5
10 6
10 7
10 8
10 9
10 10
11 0
11 1
11 2
11 3
11...

output:

-1
1 
1 -1 
-1
1 1 
-1
1 -1 1 
-1
1 1 1 
1 -1 -1 1 
-1
1 -1 1 1 
-1
1 1 1 1 
-1
1 -1 -1 1 1 
-1
1 -1 1 1 1 
-1
1 1 1 1 1 
1 -1 -1 1 -1 1 
-1
1 -1 -1 1 1 1 
-1
1 1 1 1 -1 1 
-1
1 1 1 1 1 1 
-1
1 -1 -1 1 -1 1 1 
-1
1 -1 -1 1 1 1 1 
-1
1 1 1 1 -1 1 1 
-1
1 1 1 1 1 1 1 
1 -1 -1 1 -1 1 1 -1 
-1
1 -1 -1 1...

result:

wrong answer sum of f is not k (test case 121)