Cod sursa(job #2080463)

Utilizator laurpoppopescu laurentiu laurpop Data 2 decembrie 2017 23:30:19
Problema Elimin Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.27 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("elimin.in");
ofstream g("elimin.out");

int n,m,r,c,i,j,Max,v[7300][101],x[7301],sc[7301],s;
void back(int k)
{
    int i;
    for(i=x[k-1]+1;i<=m;i++)
    {
        x[k]=i;
      for(int j=1;j<=n;j++)
         v[j][0]-=v[j][i];
        if(k==c)
           {
               for(int j=1;j<=n;j++)
                   sc[j]=v[j][0];
              sort(sc+1,sc+n+1);
              int s=0;
              for(int j=r+1;j<=n;j++)
                  s+=sc[j];
             Max=max(s,Max)   ;

           }
            else
                back(k+1);
     for(int j=1;j<=n;j++)
         v[j][0]+=v[j][i];

    }
}
int main()
{
    f>>n>>m>>r>>c;
    if(n>=m)
    {
        for(i=1;i<=n;i++)
            for(j=1;j<=m;j++)
            {
                f>>v[i][j];
               v[i][0]+=v[i][j];
            }
    }
        else
        {
            for(i=1;i<=n;i++)
                for(j=1;j<=m;j++)
                {
                    f>>v[j][i];
                    v[j][0]+=v[j][i];
                }
            int t=n;
            n=m;
            m=t;
            t=r;
            r=c;
            c=t;
        }

    back(1);
    g<<Max;
    return 0;
}