Submission #124644

# Submission time Handle Problem Language Result Execution time Memory
124644 2019-07-03T16:18:10 Z AdOjis485 Orchard (NOI14_orchard) C++14
0 / 25
1000 ms 23800 KB
//
//  main.cpp
//  orchard
//
//  Created by Ema Skottova on 03.07.19.
//  Copyright © 2019 AdOjis485. All rights reserved.
//

#include <iostream>
#include <vector>
#define int int64_t
using namespace std;

signed main() {
    int n, m;
    cin >> n >> m;
    vector<vector<int>> ps(n + 1, vector<int> (m + 1));
    int sum = 0;
    for(int i = 0; i <= n; i ++){
        int row = 0;
        for(int j = 0; j <= m; j ++){
            if(i == 0 || j == 0){
                ps[i][j] = 0;
            }
            else{
                int x;
                cin >> x;
                ps[i][j] = x + row;
                if(i > 1){
                    ps[i][j] += ps[i - 1][j];
                }
                row += x;
                sum += x;
            }
        }
    }
    int mi = n * m;
    if(n == 1){
        for(int i = 1; i <= m; i ++){
            for(int j = 1; j <= i; j ++){
                int rect_area = i - j + 1;
                int ones_inside = ps[1][i] - ps[1][j - 1];
                int zeros_inside = rect_area - ones_inside;
                int outside_area = n * m - rect_area;
                int ones_outside = sum - ones_inside;
                int zeros_outside = outside_area - ones_outside;
                int zero_one = zeros_inside + ones_outside;
                int one_zero = ones_inside + zeros_outside;
                mi = min(mi, min(one_zero, zero_one));
            }
        }
    }
    else{
        for(int i1 = 1; i1 <= n; i1 ++){
            for(int i2 = 1; i2 <= i1; i2 ++){
                for(int j1 = 1; j1 <= m; j1 ++){
                    for(int j2 = 1; j2 <= j1; j2 ++){
                        int rect_area = (i1 - i2 + 1) * (j1 - j2 + 1);
                        int ones_inside = ps[i1][j1] - ps[i1][j2 - 1] - ps[i2 - 1][j1] + ps[i2 - 1][j2 - 1];
                        int zeros_inside = rect_area - ones_inside;
                        int outside_area = n * m - rect_area;
                        int ones_outside = sum - ones_inside;
                        int zeros_outside = outside_area - ones_outside;
                        int zero_one = zeros_inside + ones_outside;
                        int one_zero = ones_inside + zeros_outside;
                        mi = min(mi, min(zero_one, one_zero));
                    }
                }
            }
        }
    }
    cout << mi << '\n';
    return 0;
}
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 237 ms 732 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1079 ms 23800 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1070 ms 3448 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 74 ms 376 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1062 ms 6264 KB Time limit exceeded
2 Halted 0 ms 0 KB -