QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#197524 | #6512. Completely Multiplicative Function | vanthoci# | WA | 31ms | 3620kb | C++17 | 1.4kb | 2023-10-02 16:47:05 | 2023-10-02 16:47:05 |
Judging History
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)