Cod sursa(job #2130563)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 13 februarie 2018 19:06:42
Problema Elimin Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>

using namespace std;
ifstream f("elimin.in");
ofstream g("elimin.out");
short int a[101][101],b[101][101],c[101][101],l,h,mini,n,m,i,j,p;
int main()
{   f>>n>>m>>l>>h;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++){
            f>>a[i][j];
            b[i][j]=a[i][j]+b[i][j-1];
            c[i][j]=a[i][j]+c[i-1][j];
        }
    while(l>0){
        mini=32001;
        for(i=1;i<=n;i++){
            if(mini>b[i][m]){
                mini=b[i][m];
                p=i;
            }
        }
        for(j=1;j<=m;j++){
            c[n][j]=c[n][j]-a[p][j];
            a[p][j]=-1;
        }
        b[p][m]=31999;
        l--;
    }
    while(h>0){
        mini=32001;
        for(j=1;j<=m;j++){
            if(mini>c[n][j]){
                mini=c[n][j];
                p=j;
            }
        }
        for(i=1;i<=n;i++)
            a[i][p]=-1;
        c[n][p]=31999;
        h--;
    }
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++){
            if(a[i][j]!=-1)
                a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+a[i][j];
            else
                a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1];

        }
    g<<a[n][m];
    return 0;
}