Cod sursa(job #3172737)

Utilizator PsyDuck1914Feraru Rares-Serban PsyDuck1914 Data 21 noiembrie 2023 10:04:46
Problema Elimin Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.28 kb
#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;
}