# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
165551 | 2019-11-27T12:38:05 Z | Sensei | Strah (COCI18_strah) | C++17 | 419 ms | 133820 KB |
#include <bits/stdc++.h> using namespace std; const int MAXN = 2e3; char a[MAXN + 7][MAXN + 7]; int n[MAXN + 7][MAXN + 7]; int ne[MAXN + 7][MAXN + 7]; int e[MAXN + 7][MAXN + 7]; int se[MAXN + 7][MAXN + 7]; int s[MAXN + 7][MAXN + 7]; int sw[MAXN + 7][MAXN + 7]; int w[MAXN + 7][MAXN + 7]; int nw[MAXN + 7][MAXN + 7]; int mat[MAXN + 7][MAXN + 7]; #define dbg(x) cerr<<#x<<" : "<<x<<" " int main () { int N, M; scanf("%d %d", &N, &M); for (int i = 1; i <= N; i++) { scanf("\n"); for (int j = 1; j <= M; j++) { scanf("%c", &a[i][j]); } } for (int i = 1; i <= N; i++) { for (int j = 1; j <= M; j++) { if (a[i][j] != '.') { continue; } if (a[i - 1][j] == '.') { n[i][j] = 1 + n[i - 1][j]; } else { n[i][j] = 1; } if (a[i][j - 1] == '.') { w[i][j] = 1 + w[i][j - 1]; } else { w[i][j] = 1; } } for (int j = M; j >= 1; j--) { if (a[i][j] != '.') { continue; } if (a[i][j + 1] == '.') { e[i][j] = 1 + e[i][j + 1]; } else { e[i][j] = 1; } } } for (int i = N; i >= 1; i--) { for (int j = 1; j <= M; j++) { if (a[i][j] != '.') { continue; } if (a[i + 1][j] == '.') { s[i][j] = 1 + s[i + 1][j]; } else { s[i][j] = 1; } } } for (int i = 1; i <= N; i++) { for (int j = 1; j <= M; j++) { if (a[i][j] == '.') { nw[i][j] = 1 + max(0, nw[i - 1][j] + nw[i][j - 1] - nw[i - 1][j - 1]); } } for (int j = M; j >= 1; j--) { if (a[i][j] == '.') { ne[i][j] = 1 + max(0, ne[i - 1][j] + ne[i][j + 1] - ne[i - 1][j + 1]); } } } for (int i = N; i >= 1; i--) { for (int j = 1; j <= M; j++) { if (a[i][j] == '.') { sw[i][j] = 1 + max(0, sw[i + 1][j] + sw[i][j - 1] - sw[i + 1][j - 1]); } } for (int j = M; j >= 1; j--) { if (a[i][j] == '.') { se[i][j] = 1 + max(0, se[i + 1][j] + se[i][j + 1] - se[i + 1][j + 1]); } } } long long ans = 0; for (int i = 1; i <= N; i++) { for (int j = 1; j <= M; j++) { if (a[i][j] != '.') { continue; } // dbg(i);dbg(j); // mat[i][j] = mat[i - 1][j] + mat[i][j - 1] - mat[i - 1][j - 1] + n[i][j] + w[i][j] - 1; // dbg(mat[i][j]); // cerr << "\n"; // ans += mat[i][j]; // dbg(i);dbg(j); // cerr << "\n"; // dbg(n[i][j]);dbg(e[i][j]);dbg(s[i][j]);dbg(w[i][j]); // cerr << "\n"; // dbg(ne[i][j]);dbg(se[i][j]);dbg(sw[i][j]);dbg(nw[i][j]); // cerr << "\n"; ans += nw[i][j] * ne[i][j] * se[i][j] * sw[i][j] / ( n[i][j] * e[i][j] * s[i][j] * w[i][j] ) // + 1; ; } } cout << ans << "\n"; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 632 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 632 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 23 ms | 13432 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 23 ms | 13432 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 22 ms | 13536 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 140 ms | 55816 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 284 ms | 88860 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 163 ms | 57224 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 93 ms | 70928 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 419 ms | 133820 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |