답안 #586730

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
586730 2022-06-30T15:20:25 Z nguyen31hoang08minh2003 Emacs (COCI20_emacs) C++14
50 / 50
1 ms 340 KB
/*
|  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |  /\  |
| /  \ | /  \ | /  \ | /  \ | /  \ | /  \ | /  \ | /  \ | /  \ | /  \ | /  \ | /  \ | /  \ | /  \ | /  \ | /  \ | /  \ |
|/    \|/    \|/    \|/    \|/    \|/    \|/    \|/    \|/    \|/    \|/    \|/    \|/    \|/    \|/    \|/    \|/    \|
+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+
|\    /|\    /|\    /|\    /|\    /|\    /|\    /|\    /|\    /|\    /|\    /|\    /|\    /|\    /|\    /|\    /|\    /|
| \  / | \  / | \  / | \  / | \  / | \  / | \  / | \  / | \  / | \  / | \  / | \  / | \  / | \  / | \  / | \  / | \  / |
|  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |  \/  |
*/
#include <bits/stdc++.h>
#define fore(i, a, b) for (int i = (a), i##_last = (b); i < i##_last; ++i)
#define fort(i, a, b) for (int i = (a), i##_last = (b); i <= i##_last; ++i)
#define ford(i, a, b) for (int i = (a), i##_last = (b); i >= i##_last; --i)
#define fi first
#define se second
#define pb push_back
#define sz(x) ((int)(x).size())
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
using namespace std;
using ll = long long;
using ld = long double;

template<class A, class B> bool maxi(A &a, const B &b) {return (a < b) ? (a = b, true):false;};
template<class A, class B> bool mini(A &a, const B &b) {return (a > b) ? (a = b, true):false;};

typedef unsigned long long ull;
typedef pair<int, int> ii;
typedef vector<ll> vi;
typedef vector<ii> vii;
typedef vector<vi> vvi;
typedef vector<vii> vvii;

#define maxN 105
#define maxM 105
const short directions[4][2] = {{-1, 0}, {0, -1}, {0, 1}, {1, 0}};

int n, m, res;
string picture[maxN];

void dfs(int x, int y) {
    int u, v;
    picture[x][y] = '.';
    for (const auto &[dx, dy] : directions) {
        u = dx + x;
        v = dy + y;
        if (u < 0 || v < 0 || u >= n || v >= m || picture[u][v] == '.')
            continue;
        dfs(u, v);
    }
}

int main() {
    #ifdef LOCAL
        freopen("input.INP", "r", stdin);
    #endif // LOCAL
    cin.tie(0) -> sync_with_stdio(0);
    cout.tie(0);
    cin >> n >> m;
    fore(i, 0, n)
        cin >> picture[i];
    fore(x, 0, n)
        fore(y, 0, m) {
            if (picture[x][y] == '.')
                continue;
            dfs(x, y);
            ++res;
        }
    cout << res << '\n';
    return 0;
}

Compilation message

emacs.cpp: In function 'void dfs(int, int)':
emacs.cpp:44:22: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   44 |     for (const auto &[dx, dy] : directions) {
      |                      ^
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 324 KB Output is correct
6 Correct 1 ms 320 KB Output is correct
7 Correct 0 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct