Submission #1177343

#TimeUsernameProblemLanguageResultExecution timeMemory
1177343ksu2009enOrchard (NOI14_orchard)C++20
25 / 25
202 ms23900 KiB
#include <iostream> #include <vector> #include <string> #include <math.h> #include <cmath> #include <iomanip> #include <cstdio> #include <algorithm> #include <numeric> #include <map> #include <set> #include <queue> #include <stack> #include <deque> #include <bitset> #include <cstring> #include <unordered_map> using namespace std; typedef long long ll; int main(){ ll n, m; cin >> n >> m; vector<vector<ll>> a(n, vector<ll> (m)); ll tot = 0; for(auto &i: a) for(auto &j: i){ cin >> j; tot += j; } ll ans = n * m; vector<ll> pref0(m), pref1(m); for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++) pref0[j] = pref1[j] = 0; for(int j = i; j < n; j++){ ll cur0 = 0, cur1 = 0; for(int p = 0; p < m; p++){ cur0 += (1 - a[j][p]); cur1 += a[j][p]; pref0[p] += cur0; pref1[p] += cur1; } ll mn = 0; for(int p = 0; p < m; p++){ ans = min(ans, pref0[p] - pref1[p] + mn); mn = min(mn, pref1[p] - pref0[p]); } } } cout << ans + tot << endl; return 0; } /* 5 7 0 0 1 0 0 1 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 1 0 0 0 1 0 0 1 0 */
#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...