Submission #704783

#TimeUsernameProblemLanguageResultExecution timeMemory
704783becaidoZoo (COCI19_zoo)C++17
110 / 110
38 ms3308 KiB
#pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx,popcnt,sse4,abm") #include <bits/stdc++.h> using namespace std; #ifdef WAIMAI #define debug(HEHE...) cout << "[" << #HEHE << "] : ", dout(HEHE) void dout() {cout << '\n';} template<typename T, typename...U> void dout(T t, U...u) {cout << t << (sizeof...(u) ? ", " : ""), dout(u...);} #else #define debug(...) 7122 #endif #define ll long long #define Waimai ios::sync_with_stdio(false), cin.tie(0) #define FOR(x,a,b) for (int x = a, I = b; x <= I; x++) #define pb emplace_back #define F first #define S second const int dx[4] = {-1, 0, 0, 1}; const int dy[4] = {0, -1, 1, 0}; const int SIZE = 1005; int n, m, cnt; string s[SIZE]; bool vs[SIZE][SIZE]; queue<pair<int, int>> q[2]; int type(char c) { return c == 'B' ? 0 : c == 'T' ? 1 : 2; } void solve() { cin >> n >> m; FOR (i, 1, n) cin >> s[i], s[i] = " " + s[i]; char c = s[1][1]; q[type(s[1][1])].emplace(1, 1); vs[1][1] = 1; while (q[0].size() || q[1].size()) { int t = type(c); while (q[t].size()) { auto [x, y] = q[t].front(); q[t].pop(); FOR (i, 0, 3) { int tx = x + dx[i], ty = y + dy[i]; if (1 <= tx && tx <= n && 1 <= ty && ty <= m && !vs[tx][ty] && type(s[tx][ty]) <= 1) { vs[tx][ty] = 1; q[type(s[tx][ty])].emplace(tx, ty); } } } cnt++; c = c == 'B' ? 'T' : 'B'; } cout << cnt << '\n'; } int main() { Waimai; solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...