Submission #779151

#TimeUsernameProblemLanguageResultExecution timeMemory
7791511075508020060209tcSajam (COCI18_sajam)C++14
90 / 90
3574 ms8180 KiB
#include<bits/stdc++.h> using namespace std; //#define int long long #define X first #define Y second int n;int K; int gr[1010][1010]; int ogr[1010][1010]; int rcal(int r){ int cnt=0; for(int i=1;i<=n;i++){ cnt+=gr[r][i]; } return min(cnt,n-cnt); } void solve(int rw){ for(int i=1;i<=n;i++){ if(gr[rw][i]==0){ for(int j=1;j<=n;j++){ gr[j][i]^=1; } } } int cal=0; for(int i=1;i<=n;i++){ cal+=rcal(i); } if(cal<=K){ cout<<"DA\n";exit(0); } } void rst(){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ gr[i][j]=ogr[i][j]; } } } signed main(){ cin.tie(0); ios_base::sync_with_stdio(0); cin>>n>>K; for(int i=1;i<=n;i++){ string s; cin>>s; s="*"+s; for(int j=1;j<=n;j++){ if(s[j]=='o'){ gr[i][j]=0; }else{ gr[i][j]=1; } ogr[i][j]=gr[i][j]; } } for(int i=1;i<=n;i++){ rst(); solve(i); rst(); for(int j=1;j<=n;j++){ gr[i][j]^=1; } solve(i); } if(K==n){ for(int clm=1;clm<=n;clm++){ rst(); for(int i=1;i<=n;i++){ if(i==clm){ if(gr[1][i]==1){ for(int j=1;j<=n;j++){ gr[j][i]^=1; } } }else{ if(gr[1][i]==0){ for(int j=1;j<=n;j++){ gr[j][i]^=1; } } } } int ok=1; for(int i=1;i<=n;i++){ if(rcal(i)>=2){ok=0;} } if(ok){ cout<<"DA\n";return 0; } } for(int i=1;i<=n;i++){ ogr[1][i]^=1; } for(int clm=1;clm<=n;clm++){ rst(); for(int i=1;i<=n;i++){ if(i==clm){ if(gr[1][i]==1){ for(int j=1;j<=n;j++){ gr[j][i]^=1; } } }else{ if(gr[1][i]==0){ for(int j=1;j<=n;j++){ gr[j][i]^=1; } } } } int ok=1; for(int i=1;i<=n;i++){ if(rcal(i)>=2){ok=0;} } if(ok){ cout<<"DA\n";return 0; } } } cout<<"NE\n"; }
#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...