Submission #173551

#TimeUsernameProblemLanguageResultExecution timeMemory
173551mosiashvililuka"The Lyuboyn" code (IZhO19_lyuboyn)C++14
19 / 100
808 ms36308 KiB
#include<bits/stdc++.h> using namespace std; int a,b,c,d,e,n,k,t,p[(1<<19)],pi; vector <string> v[29]; string ss; bool bo[(1<<19)]; string totwo(int q){ string s; while(q>0){ if(q%2==0) s.push_back('0'); else s.push_back('1'); q/=2; } while(s.size()<n) s.push_back('0'); for(int h=0; h<s.size()/2; h++) swap(s[h],s[s.size()-h-1]); return s; } void dfsk(int q){ pi++; p[pi]=q; bo[q]=1; if(pi==(1<<n)){ cout<<(1<<n)<<endl; for(int h=1; h<=pi; h++) cout<<totwo(p[h])<<endl; exit(0); } for(int h=0; h<=(1<<n)-1; h++){ if(bo[h]==0&&__builtin_popcount((p[pi]^h))==k){ if(pi==(1<<n)-1&&__builtin_popcount((p[1]^h))!=k&&t==1) continue; dfsk(h); } } bo[q]=0; pi--; } void prnt(int q){ cout<<v[q].size()<<endl; for(int h=0; h<v[q].size(); h++) cout<<v[q][h]<<endl; exit(0); } int main(){ ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0); cin>>n>>k>>t; cin>>ss; if(n==4&&k==3&&t==1){ dfsk(0); } if(k%2==0){ cout<<-1; return 0; } if(k==1){ v[2].push_back("00"); v[2].push_back("01"); v[2].push_back("11"); v[2].push_back("10"); if(n==2){ prnt(n); } for(int h=3; h<=n; h++){ for(int j=0; j<v[h-1].size(); j++){ string zx; zx="0"+v[h-1][j]; v[h].push_back(zx); } for(int j=v[h-1].size()-1; j>=0; j--){ string zx; zx="1"+v[h-1][j]; v[h].push_back(zx); } } prnt(n); } return 0; }

Compilation message (stderr)

lyuboyn.cpp: In function 'std::__cxx11::string totwo(int)':
lyuboyn.cpp:13:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     while(s.size()<n) s.push_back('0');
           ~~~~~~~~^~
lyuboyn.cpp:14:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int h=0; h<s.size()/2; h++) swap(s[h],s[s.size()-h-1]);
                  ~^~~~~~~~~~~
lyuboyn.cpp: In function 'void prnt(int)':
lyuboyn.cpp:37:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int h=0; h<v[q].size(); h++) cout<<v[q][h]<<endl;
                  ~^~~~~~~~~~~~
lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:60:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for(int j=0; j<v[h-1].size(); j++){
                          ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...