이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define TRACE(x) cerr << #x << " :: " << x << endl
#define _ << " " <<
#define SZ(x) (int)(x).size()
#define ALL(x) (x).begin(),(x).end()
#define FOR(i,a,b) for(int i=(a);i<=(b);++i)
#define RFOR(i,a,b) for (int i=(a);i>=(b);--i)
const int mxN = 1000;
const int mxM = 10;
int N, M;
string G[mxN];
int main() {
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    cin >> N >> M;
    int corner = 0, ed = 0;
    int dy[] = {-1,0,1,0};
    int dx[] = {0,1,0,-1};
    FOR(i,0,N-1){
        cin >> G[i];
    }
    FOR(i,0,N-1){
        FOR(j,0,M-1) if (G[i][j] == '#') {
            int c = 0;
            int d[] = {0,0};
            FOR(k,0,3){
                int a = i+dy[k], b = j+dx[k];
                if (a >= 0 && a < N && b >= 0 && b < M && G[a][b] == '#') {
                    d[c++] = k;
                }
            }
            if (c == 1) ++ed;
            else if (c == 2 && (d[0]-d[1])%2 != 0) ++corner;
        }
    }
    cout << corner + ed/2 << '\n';
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |