Submission #124626

#TimeUsernameProblemLanguageResultExecution timeMemory
124626johutha과수원 (NOI14_orchard)C++14
12 / 25
1082 ms31684 KiB
#include <iostream> #include <vector> #include <algorithm> #define int int64_t using namespace std; struct orchard { vector<vector<int>> orchard; vector<vector<int>> table; int n, m; void createtable() { table.resize(n + 1, vector<int>(m + 1)); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { table[i + 1][j + 1] = table[i + 1][j] + table[i][j + 1] - table[i][j] + orchard[i][j]; } } //printtable(); int mmin = 10000000000; for (int x1 = 1; x1 <= n; x1++) { for (int y1 = 0; y1 <= m; y1++) { for (int x2 = 0; x2 < x1; x2++) { for (int y2 = 0; y2 < y1; y2++) { int in = prefsum(x1, y1, x2, y2); int wrongin = (x1 - x2) * (y1 - y2) - in; int wrongout = prefsum(n, m, 0, 0) - in; mmin = min(mmin, wrongin + wrongout); } } } } cout << mmin << "\n"; } void printtable() { for (auto t : table) { for (auto i : t) { cout << i << " "; } cout << "\n"; } cout << "\n"; } int prefsum(int x1, int y1, int x2, int y2) { return table[x1][y1] + table[x2][y2] - table[x1][y2] - table[x2][y1]; } }; signed main() { int n, m; cin >> n >> m; orchard orch; orch.n = n; orch.m = m; orch.orchard.resize(n, vector<int>(m)); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> orch.orchard[i][j]; } } orch.createtable(); }
#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...