Submission #1120468

#TimeUsernameProblemLanguageResultExecution timeMemory
1120468AtabayRajabliPalindrome-Free Numbers (BOI13_numbers)C++17
1.25 / 100
1094 ms67400 KiB
#include <bits/stdc++.h> #define all(v) v.begin(), v.end() #define int long long using namespace std; const int sz = 4e3 + 5; int n, m, used[sz][sz]; int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0}; string s[sz]; bool ok(int i, int j) { return 0 <= i && i < n && 0 <= j && j < m && !used[i][j] && s[i][j] != '.'; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for(int i = 0; i < n; i++) cin >> s[i]; queue<array<int, 2>> q[2]; bool cur = 0; int ans = 0; q[cur].push({0, 0}); used[0][0] = 1; while(!q[cur].empty()) { ans++; while(!q[cur].empty()) { array<int, 2> xy = q[cur].front(); q[cur].pop(); for(int i = 0; i < 4; i++) { int nx = dx[i] + xy[0], ny = dy[i] + xy[1]; if(ok(nx, ny)) { if(s[nx][ny] == s[xy[0]][xy[1]]) q[cur].push({nx, ny}); else q[cur ^ 1].push({nx, ny}); used[nx][ny] = 1; } } } cur ^= 1; } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...