Cod sursa(job #1513798)

Utilizator preda.andreiPreda Andrei preda.andrei Data 29 octombrie 2015 23:08:56
Problema Elimin Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <stdio.h>

using namespace std;

int v[8001];
int sumal[8001];
int sumac[8001];

int main()
{
    FILE *fin=fopen("elimin.in", "r");
    FILE *fout=fopen("elimin.out", "w");

    int n, m, r, c, sf=0, x;

    fscanf(fin, "%d%d%d%d", &n, &m, &r, &c);
    for(int i=1; i<=n; ++i){
        for(int j=1; j<=m; ++j){
            fscanf(fin, "%d", &v[(i-1)*m+j]);
            sumal[i]+=v[(i-1)*m+j];
            sumac[j]+=v[(i-1)*m+j];
            sf+=v[(i-1)*m+j];
        }
    }

    for(int i=1; i<=r; ++i){
        x=1;
        for(int j=2; j<=n; ++j)
            if(sumal[j]!=-1 && (sumal[j]<sumal[x] || sumal[x]==-1))
                x=j;
        sf-=sumal[x];
        for(int j=1; j<=m; ++j)
            sumac[j]=sumac[j]-v[(x-1)*m+j];
        sumal[x]=-1;
    }

    for(int i=1; i<=c; ++i){
        x=1;
        for(int j=2; j<=m; ++j)
            if(sumac[j]!=-1 && (sumac[j]<sumac[x] || sumac[x]==-1))
                x=j;
        sf-=sumac[x];
        sumac[x]=-1;
    }

    fprintf(fout, "%d", sf);
    return 0;
}