Submission #776704

#TimeUsernameProblemLanguageResultExecution timeMemory
776704vjudge1Sajam (COCI18_sajam)C++17
90 / 90
18 ms1732 KiB
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+37;

		
void f(){
	freopen("in.txt", "r", stdin);
	freopen("out.txt", "w", stdout);
}

signed main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
 
	//f();
 	
 	int n, k; cin >> n >> k;

 	vector<string> s(n);
 	vector<int> val(n);


 	for(auto &i: s) cin >> i;

 	for(int i=0; i<n; i++){
 		for(int l=0; l<n; l++){
 			val[i]+=((s[i][l]=='x')?1:0);

 		}

 	}

 	int flag=0;


	for(int i=0; i<1; i++){
		vector<int> tf=val;

		for(int l=0; l<n; l++){
			if(s[i][l]=='x'){
				for(int j=0; j<n; j++){
					if(s[j][l]=='x'){
						val[j]--;
					}
					else val[j]++;
				}
			}
		}

		int ans=0;
		for(int l=0; l<n; l++){
			ans+=min(val[l], n-val[l]);
		}
		if(ans<=k) flag=1;
		val=tf;
	}
	
	k--;

	int x=0, y=0, z=0;
	for(int i=0; i<n-1&&!z; i++){
		for(int l=0; l<n-1&&!z; l++){
			int p=0;
			for(int j=0; j<2; j++){
				for(int f=0; f<2; f++){
					if(s[i+j][l+f]=='x') p++;
				}
			}

			if(p%2==1){
				x=i, y=l;
				z=1;
			} 
		}
	}

	for(int j=0; j<2; j++){

		for(int F=0; F<2; F++){
			if(x>=n||y>=n) continue; 
			vector<int> tf=val;
			if(s[x][y]=='x') val[x]--;
			else val[x]++;
			s[x][y]=(s[x][y]=='x'?'o':'x');


			for(int l=0; l<n; l++){
				if(s[x][l]=='x'){
					for(int p=0; p<n; p++){
						if(s[p][l]=='x'){
							val[p]--;
						}
						else val[p]++;
					}
				}
			}
			int ans=0;
			for(int l=0; l<n; l++){
				ans+=min(val[l], n-val[l]);
			}
			if(ans<=k) flag=1;
			val=tf;
			s[x][y]=(s[x][y]=='x'?'o':'x');
						y++;


		}
		x++;
		y-=2;
	}
	if(flag) cout<<"DA";
	else cout<<"NE";

}

Compilation message (stderr)

sajam.cpp: In function 'void f()':
sajam.cpp:7:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    7 |  freopen("in.txt", "r", stdin);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
sajam.cpp:8:9: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
    8 |  freopen("out.txt", "w", stdout);
      |  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#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...