제출 #464586

#제출 시각아이디문제언어결과실행 시간메모리
464586ItamarT-Covering (eJOI19_covering)C++14
0 / 100
29 ms1988 KiB
#include <iostream> using namespace std; #include <vector> int n, m, k; long long sum; int s; vector<vector<int>> num; vector<vector<int>> pain; void put(int i, int j, int p) { sum += num[i][j]; sum += num[i + 1][j]; sum += num[i -1][j]; sum += num[i][j + 1]; sum += num[i][j - 1]; if (p == 3) { sum -= num[i + 1][j]; } if (p == 2) { sum -= num[i - 1][j]; } if (p == 1) { sum -= num[i][j + 1]; } if (p == 0) { sum -= num[i][j - 1]; } } int main() { cin >> m; cin >> n; pain.resize(m+1); num.resize(m+1); sum = 0; s = 1; for (int i = 0; i < m; i++) { //pain[i].resize(n+1); for (int j = 0; j < n; j++) { int x; cin >> x; num[i].push_back(x); pain[i].push_back(0); } num[i].push_back(0); } for (int i = 0; i < n + 1; i++) { num[m].push_back(0); } cin >> k; for (int i = 0; i < k; i++) { int a, b; cin >> a; cin >> b; pain[a][b] = 1; } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (pain[i][j] == 1) { int min = 1001; if (pain[i - 1][j] == 1) { if (i == m - 1 || j == n - 1) { s = 0; } put(i, j, 2); continue; } if (pain[i + 1][j] == 1) { if (i == m - 1 || j == n - 1) { s = 0; } put(i, j, 3); continue; } if (pain[i][j+1] == 1) { if (i == m - 1 || j == n - 1) { s = 0; } put(i, j, 1); continue; } if (pain[i][j - 1] == 1) { if (i == m - 1 || j == n - 1) { s = 0; } put(i, j, 0); continue; } if (min > num[i + 1][j]) { min = num[i + 1][j]; } if (min > num[i - 1][j]) { min = num[i - 1][j]; } if (min > num[i][j+1]) { min = num[i][j+1]; } if (min > num[i ][j-1]) { min = num[i][j-1]; } sum += num[i][j]; sum += num[i + 1][j]; sum += num[i - 1][j]; sum += num[i][j + 1]; sum += num[i][j - 1]; sum -= min; } } } if (s == 0) { cout << "NO"; } else { cout << sum; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...