Submission #236426

#TimeUsernameProblemLanguageResultExecution timeMemory
236426vO_OvEmacs (COCI20_emacs)C++14
50 / 50
5 ms896 KiB
// 失敗するからこそ そこから立ち向かって行く強さがあってそんな強さが本当の強さだと私は思うから #include <bits/stdc++.h> using namespace std; template<typename T> ostream& operator<<(ostream &os, const vector<T> &v) { os << '{'; string sep; for (const auto &x : v) os << sep << x, sep = ", "; return os << '}'; } template<typename T, size_t size> ostream& operator<<(ostream &os, const array<T, size> &arr) { os << '{'; string sep; for (const auto &x : arr) os << sep << x, sep = ", "; return os << '}'; } template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; } #define fi first #define se second #define pb push_back #define all(x) (x).begin(), (x).end() #define rall(x) (x).rbegin(), (x).rend() typedef long long lint; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); char grid[2500][2500]; bool used[2500][2500]; int dx[] = {-1, 1, 0, 0}; int dy[] = {0, 0, -1, 1}; int n, m; bool isValid(int x, int y){ if(x >= 0 && x < n && y >= 0 && y < m && grid[x][y] != '.')return true; return false; } void dfs(int x, int y){ used[x][y] = true; for(int i = 0; i < 4; i++){ int tx = x + dx[i]; int ty = y + dy[i]; if(isValid(tx, ty) && !used[tx][ty])dfs(tx, ty); } } int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ cin >> grid[i][j]; } } int ans = 0; for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ if(grid[i][j] == '*' && !used[i][j]){ ans++; dfs(i, j); } } } cout << ans << '\n'; return 0; } // Write Here
#Verdict Execution timeMemoryGrader output
Fetching results...