This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <queue>
#include <stack>
#include <functional>
#include <numeric>
#include <limits>
using namespace std;
vector<vector<int>> sum;
int n, m;
int main() {
#ifdef LOCAL
freopen("input.txt", "r", stdin);
#endif
ios::sync_with_stdio(false); //int tests; cin >> tests; for (int cc = 0; cc < tests; ++cc)
{
cin >> n >> m;
sum = vector<vector<int>>(n+1, vector<int>(m+1));
int num_one = 0;
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= m; ++j)
{
cin >> sum[i][j]; if (!sum[i][j]) sum[i][j] = -1; else num_one++;
sum[i][j] += sum[i - 1][j] + sum[i][j - 1] - sum[i - 1][j - 1];
}
}
int global_max_sum = 0;
for (int i = 0; i < n; ++i)
{
for (int j = i + 1; j <= n; ++j)
{
int max_sum = 0;
int min_sum = 0;
for (int k = 1; k <= m; ++k)
{
int cur_sum = sum[j][k] - sum[i][k];
max_sum = max(max_sum, cur_sum - min_sum);
min_sum = min(min_sum, cur_sum);
}
global_max_sum = max(global_max_sum, max_sum);
}
}
cout << num_one - global_max_sum << endl;
}}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |