Submission #1187049

#TimeUsernameProblemLanguageResultExecution timeMemory
1187049PieArmy"The Lyuboyn" code (IZhO19_lyuboyn)C++20
100 / 100
137 ms7600 KiB
#include<bits/stdc++.h> typedef long long ll; #define pb push_back #define fr first #define sc second #define endl '\n' using namespace std; int n,k,t; int s; vector<int>ans; int var[1<<18]; int basis[18]; int local=0; void yaz(){ int x=ans.back()^s; if(local)if(var[x])assert(0); var[x]=1; for(int i=0;i<n;i++){ cout<<!!(x&(1<<i)); } cout<<endl; } int main(){ ios_base::sync_with_stdio(false);cin.tie(NULL); if(local)freopen("tc.out","w",stdout); if(local)freopen("tc.in","r",stdin); cin>>n>>k>>t; for(int i=0;i<n;i++){ char c;cin>>c; if(c=='1'){ s+=(1<<i); } } if(n<=k||(k&1)==0){ cout<<-1; return 0; } cout<<(1<<n)<<endl; ans.pb(0); yaz(); int cur; for(int i=0;i<(1<<n);i++){ if(__builtin_popcount(i)!=k)continue; cur=i; for(int j=0;j<n;j++)basis[j]=0; while(true){ int y=cur; for(int j=n-1;j>=0;j--){ if((y&(1<<j))==0)continue; if(basis[j]==0){ basis[j]=y; break; } else y^=basis[j]; } cur=(cur>>1)|((cur&1)<<(n-1)); if(cur==i)break; } bool b=true; for(int j=0;j<n;j++){ if(basis[j]==0){ b=false; break; } } if(b)break; } for(int i=0;i<n;i++){ for(int j=ans.size()-1;j>=0;j--){ ans.pb(ans[j]^cur); yaz(); } cur=(cur>>1)|((cur&1)<<(n-1)); } }

Compilation message (stderr)

lyuboyn.cpp: In function 'int main()':
lyuboyn.cpp:29:25: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |         if(local)freopen("tc.out","w",stdout);
      |                  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
lyuboyn.cpp:30:25: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |         if(local)freopen("tc.in","r",stdin);
      |                  ~~~~~~~^~~~~~~~~~~~~~~~~~~
#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...