Cod sursa(job #6927)

Utilizator bogdanhm999Casu-Pop Bogdan bogdanhm999 Data 21 ianuarie 2007 10:55:20
Problema Elimin Scor 30
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasa a 10-a Marime 1.16 kb
#include <fstream.h>

ifstream f1("elimin.in");
ofstream f2("elimin.out");

int main(){
    int n,m,r,c,i,j,a[101][101],x[101],y[101],poz,max[101];
    long long l[101],p[101],s,sum,min;
    f1>>n;f1>>m;f1>>r;f1>>c;
    sum=0;
    for (i=1;i<=n;i++){
        s=0;x[i]=1;max[i]=0;
        for (j=1;j<=m;j++){
            f1>>a[i][j];y[j]=1;
            s=s+a[i][j];
            if (a[i][j]>max[i])max[i]=a[i][j];
        }
        l[i]=s;
        sum=sum+l[i];
    }
    for (j=1;j<=r;j++){
        min=233600000;
        for (i=1;i<=n;i++)if (x[i]==1&&l[i]<min){min=l[i];poz=i;}
                             else if (x[i]==1&&l[i]==min&&max[poz]<max[i]){min=l[i];poz=i;}
        x[poz]=0;sum=sum-min;
    }
    for (j=1;j<=m;j++){
        p[j]=0;
        for (i=1;i<=n;i++){
            p[j]=p[j]+a[i][j]*x[i];
        }
    }
    for (i=1;i<=c;i++){
        min=233600000;
        for (j=1;j<=m;j++)if (y[j]==1&&p[j]<min){min=p[j];poz=j;}
        y[poz]=0;sum=sum-min;
    }
    f2<<sum<<'\n';
    /*
    for (i=1;i<=n;i++)f2<<x[i]<<" ";
    f2<<'\n';
    for (j=1;j<=m;j++)f2<<y[j]<<" ";
    */
    f1.close();
    f2.close();
    return 0;
}