This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define OYY 1000000000005
#define faster ios_base::sync_with_stdio(false); cin.tie(NULL);
#define mid (start+end)/2
#define mod 1000000007
int dizi[1005][1005],x[1005][1005];
int32_t main(){
faster
int n,k;
cin>>n>>k;
char c;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>c;
if(c=='o')dizi[i][j]=0;
else dizi[i][j]=1;
}
}
int tut;
if(n%2==0)tut=n*n/2+1;
else tut=n*n/2;
if(n==1){
cout<<"DA"<<'\n';
return 0;
}
else if(k>=tut){
cout<<"DA"<<'\n';
return 0;
}
bool stop=true;bool sto=true;
int y=100;
while(y--){
int cev=0;
for(int i=1;i<n && stop;i++){
for(int j=1;j<n && stop;j++){
int sor=dizi[i-1][j-1]+dizi[i-1][j]+dizi[i][j-1]+dizi[i][j];
if(sor%2!=0){
dizi[i][j]^=1;
cev++;
}
if(cev>k){
stop=false;
break;
}
}
}
int cev1=0;
for(int i=1;i<n && sto;i++){
for(int j=1;j<n && sto;j++){
int sor=dizi[i-1][j-1]+dizi[i-1][j]+dizi[i][j-1]+dizi[i][j];
if(sor%2!=0){
dizi[i-1][j-1]^=1;
cev1++;
}
if(cev1>k){
sto=false;
break;
}
}
}
if(stop && sto){
cout<<"DA"<<'\n';
return 0;
}
}
cout<<"NE"<<'\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |