Pagini recente » Cod sursa (job #2394427) | Cod sursa (job #2374696) | Cod sursa (job #1397636) | Cod sursa (job #139573) | Cod sursa (job #3172737)
#include <bits/stdc++.h>
using namespace std;
ifstream f("elimin.in");
ofstream g("elimin.out");
const int NMAX = 7294;
int a[NMAX + 1][NMAX + 1];
int n, m;
void swap_lin(int i1, int i2) {
for (int j = 0; j <= m; j++)
swap(a[i1][j], a[i2][j]);
}
void swap_col(int j1, int j2) {
for (int i = 0; i <= n; i++)
swap(a[i][j1], a[i][j2]);
}
int main() {
int r, c;
f >> n >> m >> r >> c;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++) {
f >> a[i][j];
a[i][m] += a[i][j];
a[n][j] += a[i][j];
}
for (int i = 0; i < m - 1; i++) {
int mini = i;
for (int j = i + 1; j < m; j++)
if (a[n][j] < a[n][mini])
mini = j;
swap_col(i, mini);
}
for (int i = 0; i < n; i ++)
for(int j = 1; j < c; j ++)
a[i][m] -= a[i][j];
for (int i = 0; i < n - 1; i++) {
int mini = i;
for (int j = i + 1; j < n; j++)
if (a[j][m] < a[mini][m])
mini = j;
swap_lin(i, mini);
}
int sum = 0;
for (int i = r; i < n; i++)
for (int j = c; j < m; j++)
sum += a[i][j];
g << sum;
return 0;
}