QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#305844 | #5434. Binary Substrings | NemanjaSo2005 | WA | 8ms | 30132kb | C++14 | 2.0kb | 2024-01-16 03:50:56 | 2024-01-16 03:50:56 |
Judging History
answer
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int N,M,K;
vector<int> graf[(1<<20)+5];
int perm[(1<<20)+5];
void napravi(int k){
M=1<<(k-1);
for(int i=0;i<(1<<(k));i++){
int a=i>>1;
int b=i&((1<<(k-1))-1);
graf[a].push_back(b);
}
}
vector<int> V,R;
void poperm(int gde){
R.push_back(gde);
if(perm[gde]==0)
return;
int p=perm[gde];
perm[gde]=0;
poperm(p);
}
void euler(int gde){
while(graf[gde].size()){
int ko=graf[gde].back();
graf[gde].pop_back();
euler(ko);
}
V.push_back(gde);
}
int main(){
cin>>N;
if(N==1){
cout<<"0\n";
return 0;
}
if(N==2){
cout<<"01\n";
return 0;
}
if(N==3){
cout<<"010\n";
return 0;
}
if(N==4){
cout<<"1001\n";
return 0;
}
for(int i=0;i<=20;i++){
if((1<<i)+i-1<=N)
K=i;
}
//cout<<"DUZINA JE "<<K<<endl;
napravi(K);
euler(0);
reverse(V.begin(),V.end());
/*cout<<"CIKLUS: ";
for(int i=0;i<V.size();i++)
cout<<V[i]<<" ";
cout<<endl;*/
string poc="";
if(((1<<(K))+K-1)!=N){
vector<int> B;
for(int i=1;i<V.size();i++)
B.push_back((V[i-1]<<1) + (V[i]&1));
/*
cout<<"NIZ B:"<<endl;
for(int i=0;i<B.size();i++)
cout<<B[i]<<" ";
cout<<endl;*/
B.push_back(B[0]);
for(int i=0;i+1<B.size();i++)
perm[B[i]]=B[i+1]^1;
poc="";
for(int i=(1<<K);i>=2;i>>=1)
poc.push_back('0'+((B[0]&i)>0));
for(int i=0;i+1<B.size();i++)
poperm(B[i]);
}
else{
//cout<<"OVAKAV"<<endl;
for(int i=1;i<K;i++)
cout<<"0";
for(int i=1;i<V.size();i++)
cout<<(V[i]&1);
cout<<endl;
return 0;
}
// cout<<R.size()-1<<" "<<N-(K-1)<<endl;
cout<<poc;
for(int i=0;i<N-poc.size();i++)
cout<<(R[i]&1);
cout<<"\n";
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 28916kb
input:
2
output:
01
result:
ok meet maximum 3
Test #2:
score: 0
Accepted
time: 0ms
memory: 29200kb
input:
5
output:
01100
result:
ok meet maximum 12
Test #3:
score: 0
Accepted
time: 4ms
memory: 29868kb
input:
1
output:
0
result:
ok meet maximum 1
Test #4:
score: 0
Accepted
time: 0ms
memory: 29912kb
input:
3
output:
010
result:
ok meet maximum 5
Test #5:
score: 0
Accepted
time: 0ms
memory: 28124kb
input:
4
output:
1001
result:
ok meet maximum 8
Test #6:
score: 0
Accepted
time: 3ms
memory: 29044kb
input:
6
output:
001011
result:
ok meet maximum 16
Test #7:
score: 0
Accepted
time: 4ms
memory: 29568kb
input:
7
output:
0010111
result:
ok meet maximum 21
Test #8:
score: 0
Accepted
time: 4ms
memory: 29660kb
input:
8
output:
00101110
result:
ok meet maximum 27
Test #9:
score: 0
Accepted
time: 3ms
memory: 29448kb
input:
9
output:
001011100
result:
ok meet maximum 34
Test #10:
score: 0
Accepted
time: 5ms
memory: 30132kb
input:
10
output:
0011101000
result:
ok meet maximum 42
Test #11:
score: -100
Wrong Answer
time: 8ms
memory: 29348kb
input:
11
output:
00010110011
result:
wrong answer not meet maximum 49 < 50