Submission #441990

#TimeUsernameProblemLanguageResultExecution timeMemory
441990YomapeedZoo (COCI19_zoo)C++17
45 / 110
2087 ms11688 KiB
#include<bits/stdc++.h>
#define pi 3.141592653589793238
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#define MOD 1000000007
#define INF 999999999999999999 
#define pb push_back
#define ff first
#define ss second
 
#define mt make_tuple
#define ll long long
#define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>

using namespace __gnu_pbds;
 
 
typedef tree<ll, null_type, less_equal<ll>, rb_tree_tag, tree_order_statistics_node_update> indexed_set;
 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
const int N = 1e3 + 1;
string s[N]; 
ll n, m;
char c;
ll curr;
int visited[N][N];
vector<ll> X = {1, -1, 0, 0};
vector<ll> Y = {0, 0, 1, -1};
bool valid(ll x, ll y){
	if(x < 0 || x >= n || y < 0 || y >= m){
		return false;
	}
	if(s[x][y] == c || s[x][y] == '.'){
		return true;
	}
	return false;
}
ll cnt = 0;
void dfs(ll a, ll b){
	visited[a][b] = curr;
	if(s[a][b] != '.'){
		cnt++;
	}
	s[a][b] = '.';
	for(int i = 0; i < 4; i++){
		ll x, y;
		x = a + X[i], y = b + Y[i];
		if(!valid(x, y)){
			continue;
		}
		if(curr != visited[x][y])
		dfs(x, y);	
	}

}
int main() {
	//freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
	fast;
	ll T = 1;
	
	//cin >> T;
	while (T--) {
		cin >> n >> m;
		for(int i = 0; i < n; i++){
			cin >> s[i];
		}		
		c = s[0][0];
		ll ans = 0;
		while(1){
			cnt = 0;
			// for(int i = 0; i < n; i++){
			// 	for(int j = 0; j < m; j++){
			// 		visited[i][j] = false;
			// 	}
			// }
			curr++;
			dfs(0, 0);
			if(cnt == 0){
				break;
			}
			ans++;
			if(c == 'B'){
				c = 'T';
			}
			else{
				c = 'B';
			}
		}	
		cout << ans << "\n";
	}
	return 0;
}

Compilation message (stderr)

zoo.cpp:4: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    4 | #pragma GCC optimization ("O3")
      | 
zoo.cpp:5: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
    5 | #pragma GCC optimization ("unroll-loops")
      |
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...