Submission #1266454

#TimeUsernameProblemLanguageResultExecution timeMemory
1266454canhnam357Emacs (COCI20_emacs)C++20
50 / 50
0 ms580 KiB
#include <bits/stdc++.h> #include <unordered_map> #include <unordered_set> using namespace std; typedef unsigned long long ull; typedef long long ll; typedef long double ld; typedef vector <int> vi; typedef vector <ll> vll; typedef vector <string> vs; typedef vector <vector <int>> vvi; typedef vector <vll> vvll; typedef map<int, int> mi; typedef map<string, int> ms; typedef map<char, int> mc; typedef map <int, bool> mb; typedef map<ll, ll> mll; typedef unordered_map<int, int> umi; typedef unordered_map<string, int> ums; typedef unordered_map<char, int> umc; typedef unordered_map <int, bool> umb; typedef unordered_map<ll, ll> umll; typedef vector <ld> vld; typedef vector <bool> vb; typedef pair <int, int> pii; typedef pair<ll, ll> pll; typedef vector <pii> vpii; typedef vector <pll> vpll; #define FOR(i,N) for(ll i = 0 ; i < N;i++) #define eFOR(i,a,b) for(ll i = a; i <=b;i++) #define dFOR(i,N) for(ll i = N - 1; i>=0;i--) #define edFOR(i,b,a) for(ll i = b ; i >=a;i--) #define all(x) x.begin(),x.end() #define SORT(x) sort(all(x)) #define RSORT(x) sort(x.rbegin(), x.rend()) #define UNQ(x) unique(all(x)) #define mine(x) min_element(all(x)) #define maxe(x) max_element(all(x)) #define lb(v, x) lower_bound(all(v) , x) #define ub(v, x) upper_bound(all(v) , x) #define pb push_back #define FIX cout << fixed << setprecision(15) #define g(i , a) get<i>(a) const long double PI = 3.141592653589793; const ll mod = 1e9 + 7; int CASE = 1; const int mxn = 1e5 + 1; const ll infll = 1e18; const int infi = 1e9; bool prime(ll n) { if (n <= 1) return false; if (n == 2 or n == 3) return true; if (n % 2 == 0 or n % 3 == 0) return false; for (ll i = 5; i * i <= n; i += 6) if (n % i == 0 || n % (i + 2) == 0) return false; return true; } ll __gcd(ll a, ll b) { return !b ? a : __gcd(b, a % b); } ll power(ll a, ll b) { ll x = a, res = 1, p = b; while (p > 0) { if (p & 1) res *= x; x *= x; p >>= 1; } return res; } vi dp; vvi pos; int cnt = 0; vs v; vi dx = { -1 ,1 , 0 ,0 }; vi dy = { 0 , 0 , -1, 1 }; vector <vb> vis; void dfs(int x, int y) { if (x < 0 || x >= v.size() || y < 0 || y >= v[0].size()) return; if (vis[x][y] || v[x][y] == '.') return; vis[x][y] = true; pos[x][y] = cnt; for (int i = 0; i < 4; i++) dfs(x + dx[i], y + dy[i]); } void solve() { int n, m; cin >> n >> m; v = vs(n); FOR(i, n) cin >> v[i]; vis = vector<vb>(n, vb(m, false)); pos = vvi(n, vi(m, 0)); FOR(i, n) { FOR(j, m) { if (v[i][j] == '*' && pos[i][j] == 0) { cnt++; dfs(i, j); } } } int ans = 0; FOR(i, n) { FOR(j, m) { ans = max(ans, pos[i][j]); } } cout << ans; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); int T = 1; while (T--) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...