Cod sursa(job #1610944)

Utilizator stefzahZaharia Stefan Tudor stefzah Data 23 februarie 2016 20:44:12
Problema Elimin Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>
#include<algorithm>
using namespace std;
ifstream fin("elimin.in");
ofstream fout("elimin.out");
int n,m,r,c,aux,prec,col[8000],mx,a[21][400];
bool st[90];
void Check()
         {int sum=0,i,j;
          for(j=1;j<=m;j++)
             col[j]=0;
          for(i=1;i<=n;++i)
             {if(st[i]==0){for(j=1;j<=m;j++)
                                  {col[j]=col[j]+a[i][j];
                                  }
                          }
             }
          sort(col+1,col+m+1);
          for(i=c+1;i<=m;++i)
             sum=sum+col[i];
         if(mx<sum)mx=sum;
         }
void Back(int top,int prec)
         {int i;
          if(top>r)Check();
           else for(i=prec+1;i<=n;++i)
                   {st[i]=1;
                    Back(top+1,i);
                    st[i]=0;
                   }
         }
int main()
{int i,j;
 fin>>n>>m>>r>>c;
mx=-1000000000;
 if(n>m)
   {aux=n;
    n=m;
    m=aux;
    aux=r;
    r=c;
    c=aux;
    for(i=1;i<=m;++i)
       {for(j=1;j<=n;++j)
           fin>>a[j][i];
       }
   }
 else {for(i=1;i<=n;++i)
         {for(j=1;j<=n;++j)
             fin>>a[i][j];
         }
      }
 Back(1,0);
 fout<<mx;
}