Pagini recente » Cod sursa (job #366156) | Cod sursa (job #2183538) | Cod sursa (job #2175240) | Cod sursa (job #616454) | Cod sursa (job #3171236)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("elimin.in");
ofstream fout("elimin.out");
const int maxn = 7294;
int v[maxn + 1][maxn + 1];
int n, m;
void swaplines(int i1, int i2) {
for (int j = 0; j <= m; j++)
swap(v[i1][j], v[i2][j]);
}
void swapcolumns(int j1, int j2) {
for (int i = 0; i <= n; i++)
swap(v[i][j1], v[i][j2]);
}
int main() {
int r, c;
fin >> n >> m >> r >> c;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) {
fin >> v[i][j];
v[i][m] += v[i][j];
v[n][j] += v[i][j];
}
for (int i = 0; i < n - 1; i++) {
int mini = i;
for (int j = i + 1; j < n; j++)
if (v[j][m] < v[mini][m])
mini = j;
swaplines(i, mini);
}
for (int j = 0; j < m; j++)
for (int i = 0; i < r; i++)
v[n][j] -= v[i][j];
for (int i = 0; i < m - 1; i++) {
int mini = i;
for (int j = i + 1; j < m; j++)
if (v[n][j] < v[n][mini])
mini = j;
swapcolumns(i, mini);
}
int sum = 0;
for (int i = r; i < n; i++)
for (int j = c; j < m; j++)
sum += v[i][j];
fout << sum;
return 0;
}