using i64 = longlong; int way[4][2] = { 1, 0, -1, 0, 0, 1, 0, -1 }; voidsolve(){ int n, m; cin >> n >> m;
vector a(n + 1, vector<int> (m + 1)), vis(n + 1, vector<int> (m + 1)); for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cin >> a[i][j]; } }
map<int, int> mp; bool f = 0; auto dfs = [&](auto self, int x, int y, int g) -> void { vis[x][y] = 1; for (int i = 0; i < 4; i++) { int dx = x + way[i][0]; int dy = y + way[i][1]; if (dx <= 0 || dy <= 0 || dx > n || dy > m || vis[dx][dy] || a[dx][dy] != g) continue; f = 1; self(self, dx, dy, g); } };
for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (!vis[i][j]) { f = 0; dfs(dfs, i, j, a[i][j]); if (f) { mp[a[i][j]] = 2; } else { if (!mp.count(a[i][j])) { mp[a[i][j]] = 1; } } } } }
int ans = 0; vector<int> b; for (auto [x, y] : mp) { b.push_back(y); } sort(b.begin(), b.end()); for (int i = 0; i < b.size() - 1; i++) { ans += b[i]; } cout << ans << '\n'; } intmain(){ ios::sync_with_stdio(false); cin.tie(nullptr);
#include<bits/stdc++.h> usingnamespace std; using i64 = longlong; constint mod = 998244353;
template<class T> constexpr T power(T a, i64 b, T mod){ T res = 1; for (; b; b /= 2, a = a * a % mod) { if (b % 2) { res = (res * a) % mod; } } return res; }
constint N = 200005; vector<i64> pow2(N), inv(N);
i64 inv2 = power<i64>(2, mod - 2, mod);
voidsolve(){ int n; cin >> n;
vector<int> a(n + 1); for (int i = 1; i <= n; i++) { cin >> a[i]; }
vector<int> P(n + 1); for (int i = 1; i <= n; i++) { P[i] = P[i - 1] + (a[i] == 2); }
i64 one = 0, sum = 0, ans = 0; for (int j = 1; j <= n; j++) { if (a[j] == 1) { one = (one + 1) % mod; sum = (sum + inv[P[j]]) % mod; } elseif (a[j] == 2) {
} else { int X = P[j - 1]; i64 g = ((pow2[X] * sum) % mod - one) % mod; if (g < 0) g += mod; ans = (ans + g) % mod; } } cout << ans % mod << "\n"; }