QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#299685 | #6512. Completely Multiplicative Function | 111445# | WA | 5ms | 3808kb | C++23 | 793b | 2024-01-07 04:34:14 | 2024-01-07 04:34:15 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define b(x) (1ll<<((x)-1))
#define N 1000000
int i,j,k,n,m,t;
bitset<N+50> f;
vector<int> p;
void fuck(int n,int m){
int i,j,k,tot=0;
for(i=1;i<=n;i++)f[i]=0;
for(auto i:p){
if(i>n)break;
k=0;
for(j=i;j<=n;j+=i){
if(!f[j])k++;
else k--;
}
if(tot+k<=m){
tot+=k;
for(j=i;j<=n;j+=i)f[j]=(f[j]^1);
}
if(tot==m)break;
}
if(tot!=m)exit(1);
}
int main(){
ios::sync_with_stdio(0); cin.tie(0);
for(i=2;i<=N;i++)if(!f[i]){
p.push_back(i);
for(j=i;j<=N;j+=i)f[j]=1;
}
f.reset();
cin>>t;
while(t--){
cin>>n>>m;
m=n-m;
if(m&1){cout<<"-1\n"; continue;}
m/=2;
fuck(n,m);
for(i=1;i<=n;i++)cout<<(f[i]?-1:1)<<' ';
cout<<'\n';
}
}
详细
Test #1:
score: 0
Wrong Answer
time: 5ms
memory: 3808kb
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:
wrong answer f[4] != f[2] * f[2] (test case 2)