Submission #357589

#TimeUsernameProblemLanguageResultExecution timeMemory
357589kshitij_sodani"The Lyuboyn" code (IZhO19_lyuboyn)C++14
100 / 100
669 ms66492 KiB
//#pragma GCC optimize("Ofast,unroll-loops") #include <bits/stdc++.h> using namespace std; typedef long long llo; #define mp make_pair #define pb push_back #define a first #define b second #define endl '\n' int n,k,t; vector<vector<int>> ans; vector<vector<int>> solve(int n){ if(n==1){ return {{0},{1}}; return {{0,0},{0,1},{1,1},{1,0}}; } else{ vector<vector<int>> aa=solve(n-1); vector<vector<int>> bb=solve(n-1); reverse(bb.begin(),bb.end()); for(int i=0;i<aa.size();i++){ aa[i].pb(0); bb[i].pb(1); } for(int i=0;i<bb.size();i++){ aa.pb(bb[i]); } return aa; } } int it[20]; vector<vector<int>> solve2(int n){ if(n==k+1){ return ans; } else{ vector<vector<int>> aa=solve2(n-1); vector<vector<int>> cur; for(int i=0;i<aa.size();i++){ cur.pb(aa[i]); cur[i].pb(0); } int ind=-1; for(int j=0;j<n-1;j++){ if(aa.back()[j]==1){ ind=j; break; } } for(int i=0;i<aa.size();i++){ vector<int> dd; for(int j=0;j<aa[i].size();j++){ if(j==ind){ dd.pb(aa[i][j]^1); } else{ dd.pb(aa[i][j]); } } dd.pb(1); cur.pb(dd); } return cur; } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>n>>k>>t; string s; cin>>s; if(k%2==0){ cout<<-1<<endl; return 0; } /* int cur=0; for(int i=0;i<(1<<n);i++){ if(__builtin_popcount(i)==k){ cur^=i; for(auto j=0;j<n;j++){ if(cur&(1<<j)){ cout<<1; } else{ cout<<0; } } cout<<endl; } } return 0; */ for(int i=0;i<n;i++){ it[i]=s[i]-'0'; } //if(k==1 or k==n-1){ ans=solve(k+1); for(int i=1;i<(ans.size());i+=2){ for(int j=0;j<k+1;j++){ ans[i][j]^=1; } } cout<<(1<<n)<<endl; vector<vector<int>> ans2=solve2(n); for(auto j:ans2){ for(int ii=0;ii<n;ii++){ cout<<(j[ii]^it[ii]); } cout<<endl; } /*int ind=-1; int kk=0; if(k==n-1){ kk=1; } for(int i=0;i<ans.size();i++){ int st=1; for(int j=0;j<n;j++){ if(ans[i][j]!=it[j]){ st=0; } } if(st==1){ ind=i; } } cout<<ans.size()<<endl; // int cot=0; int cot=0; for(auto j:ans){ for(int i=0;i<n;i++){ if(cot==1 and kk==1){ cout<<((it[i]^j[i])^1); continue; } cout<<(it[i]^j[i]); } cout<<endl; cot=1-cot; }*/ //} return 0; }

Compilation message (stderr)

lyuboyn.cpp: In function 'std::vector<std::vector<int> > solve(int)':
lyuboyn.cpp:21:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |   for(int i=0;i<aa.size();i++){
      |               ~^~~~~~~~~~
lyuboyn.cpp:25:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |   for(int i=0;i<bb.size();i++){
      |               ~^~~~~~~~~~
lyuboyn.cpp: In function 'std::vector<std::vector<int> > solve2(int)':
lyuboyn.cpp:39:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |   for(int i=0;i<aa.size();i++){
      |               ~^~~~~~~~~~
lyuboyn.cpp:50:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |   for(int i=0;i<aa.size();i++){
      |               ~^~~~~~~~~~
lyuboyn.cpp:52:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   52 |    for(int j=0;j<aa[i].size();j++){
      |                ~^~~~~~~~~~~~~
lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:103:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  103 |   for(int i=1;i<(ans.size());i+=2){
      |               ~^~~~~~~~~~~~~
#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...