Submission #1197419

#TimeUsernameProblemLanguageResultExecution timeMemory
1197419ezzzayLight Bulbs (EGOI24_lightbulbs)C++17
0 / 100
0 ms408 KiB
#include<bits/stdc++.h> using namespace std; #define ff first #define ss second #define pb push_back const int N=3e5+5; int n; set<int>sty,stx; vector<pair<int,int>>Y,X; int ask(int y, int x){ vector< vector<int> > v(n, vector<int> (n)); v[0][0]=1; v[y][x]=1; cout<<"? "<<endl; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ cout<<v[i][j]; } cout<<endl; } int h; cin>>h; return h; } int ask2(int y, int x, int l, int r){ vector< vector<int> > v(n, vector<int> (n)); v[l][r]=1; v[y][x]=1; cout<<"? "<<endl; for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ cout<<v[i][j]; } cout<<endl; } int h; cin>>h; return h; } void fun(vector<pair<int,int>> vc){ cout<<"! "<<endl; vector< vector<int> > v(n, vector<int> (n)); for(auto p:vc){ v[p.ff][p.ss]=1; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ cout<<v[i][j]; } cout<<endl; } } signed main(){ cin>>n; for(int i=0;i<n;i++){ sty.insert(i); stx.insert(i); } if(ask(0,1)==n){ stx.erase(0); X.pb({0,0}); } else if(ask2(0,1,0,2)==n){ sty.erase(0); Y.pb({0,0}); } else{ stx.erase(0); X.pb({0,0}); } while(sty.size() and stx.size()){ auto y= *sty.begin(), x= *stx.begin(); int h=ask(y,x); if(h!=2*n-1){ Y.pb({y,x}); sty.erase(y); } else{ X.pb({y,x}); stx.erase(x); } } if(sty.empty()){ fun(Y); } else{ for(auto a:stx){ for(int i=0;i<n;i++){ if(ask2(X[0].ff,X[0].ss,i,a)%n==0){ X.pb({i,a}); break; } } } fun(X); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...