# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
759026 | 2023-06-15T16:59:37 Z | kirakosyan | Dijamant (COCI22_dijamant) | C++17 | 142 ms | 82124 KB |
#include <iostream> #include <vector> #include <algorithm> #include <set> #include <cmath> #include <map> #include <string> #include <ios> #include <iomanip> #include <deque> #include <queue> #include <list> #include <stack> #define FASTIO ios_base::sync_with_stdio(0); cin.tie(NULL); using ll = long long; using namespace std; void solve() { int n, m; cin >> n >> m; vector<string>v(n); vector<vector<int>>a(n, vector<int>(m)); vector<vector<int>>b(n, vector<int>(m)); vector<vector<int>>c(n, vector<int>(m)); vector<vector<int>>d(n, vector<int>(m)); vector<vector<int>>pref(n, vector<int>(m)); for (int i = 0; i < n; i++) { cin >> v[i]; } for (int i = 0; i < n; i++) { if (v[i][0] == '#') { pref[i][0] = 1; } for (int j = 1; j < m; j++) { if (v[i][j] == '#') { pref[i][j] = pref[i][j - 1] + 1; } else pref[i][j] = pref[i][j - 1]; } } // 7 10 // .....#... // ....#.#.. // ...#...#. // ..#.....# // ...#...#. // ....#.#.. // .....#... for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (j != 0 && i != n - 1 && j != m - 1) { if (v[i + 1][j - 1] == '#' && v[i + 1][j + 1] == '#' && v[i + 1][j] == '.' && v[i][j] == '#') { a[i + 1][j - 1] = 1; b[i + 1][j + 1] = 1; } } if (j != 0 && i != 0 && j != m - 1) { if (v[i - 1][j - 1] == '#' && v[i - 1][j + 1] == '#' && v[i - 1][j] == '.' && v[i][j] == '#') { c[i - 1][j - 1] = 1; d[i - 1][j + 1] = 1; } } } } for (int i = 0; i < n; i++) { int arajin = -1, erkrord = -1, cnt = 0; for (int j = 0; j < m; j++) { if (v[i][j] == '#' && cnt == 0) { cnt++; arajin = j; } else if (v[i][j] == '#' && cnt == 1) { if (i >= 1 && a[i - 1][arajin + 1] == 1 && b[i - 1][j - 1] == 1 && (pref[i - 1][j - 1] - pref[i - 1][arajin]) == 2) { a[i][arajin] = 1; b[i][j] = 1; } arajin = j; } } } for (int i = n - 1; i >= 0; i--) { int arajin = -1, erkrord = -1, cnt = 0; for (int j = 0; j < m; j++) { if (v[i][j] == '#' && cnt == 0) { cnt++; arajin = j; } else if (v[i][j] == '#' && cnt == 1) { if (i <= n - 2 && c[i + 1][arajin + 1] == 1 && d[i + 1][j - 1] == 1 && (pref[i + 1][j - 1] - pref[i + 1][arajin]) == 2) { c[i][arajin] = 1; d[i][j] = 1; } arajin = j; } } } int ans = 0; for (int i = 0; i < n; i++) { int cnt = 0; int arajin = -1, erkrord = -1; for (int j = 0; j < m; j++) { if (v[i][j] == '#' && cnt == 0) { cnt++; arajin = j; } else if (v[i][j] == '#' && cnt == 1) { if (a[i][arajin] == 1 && c[i][arajin] == 1 && b[i][j] == 1 && d[i][j] == 1) { ans++; } arajin = j; } } } //for (int i = 0; i < n; ++i) { // for (int j = 0; j < m; ++j) { // cout << a[i][j] << " "; // } // cout << "\n"; //} cout << ans << endl; } signed main() { FASTIO ll t = 1; //cin >> t; while (t--) { solve(); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 468 KB | Output is correct |
2 | Correct | 1 ms | 468 KB | Output is correct |
3 | Correct | 1 ms | 468 KB | Output is correct |
4 | Correct | 1 ms | 468 KB | Output is correct |
5 | Correct | 1 ms | 468 KB | Output is correct |
6 | Correct | 1 ms | 468 KB | Output is correct |
7 | Correct | 1 ms | 468 KB | Output is correct |
8 | Correct | 1 ms | 468 KB | Output is correct |
9 | Correct | 1 ms | 468 KB | Output is correct |
10 | Correct | 1 ms | 468 KB | Output is correct |
11 | Correct | 1 ms | 468 KB | Output is correct |
12 | Correct | 1 ms | 468 KB | Output is correct |
13 | Correct | 1 ms | 468 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 468 KB | Output is correct |
2 | Correct | 1 ms | 468 KB | Output is correct |
3 | Correct | 1 ms | 468 KB | Output is correct |
4 | Correct | 1 ms | 468 KB | Output is correct |
5 | Correct | 1 ms | 468 KB | Output is correct |
6 | Correct | 1 ms | 468 KB | Output is correct |
7 | Correct | 1 ms | 468 KB | Output is correct |
8 | Correct | 1 ms | 468 KB | Output is correct |
9 | Correct | 1 ms | 468 KB | Output is correct |
10 | Correct | 1 ms | 468 KB | Output is correct |
11 | Correct | 1 ms | 468 KB | Output is correct |
12 | Correct | 1 ms | 468 KB | Output is correct |
13 | Correct | 1 ms | 468 KB | Output is correct |
14 | Correct | 47 ms | 76328 KB | Output is correct |
15 | Correct | 60 ms | 78420 KB | Output is correct |
16 | Correct | 142 ms | 72176 KB | Output is correct |
17 | Correct | 66 ms | 72112 KB | Output is correct |
18 | Correct | 93 ms | 82124 KB | Output is correct |
19 | Correct | 71 ms | 69504 KB | Output is correct |
20 | Correct | 58 ms | 81900 KB | Output is correct |
21 | Correct | 50 ms | 69708 KB | Output is correct |
22 | Correct | 91 ms | 74076 KB | Output is correct |
23 | Correct | 78 ms | 70280 KB | Output is correct |
24 | Correct | 91 ms | 75736 KB | Output is correct |
25 | Correct | 56 ms | 69320 KB | Output is correct |
26 | Correct | 64 ms | 71928 KB | Output is correct |