Cod sursa(job #1026474)

Utilizator Pop_EmilPal Tamas Pop_Emil Data 11 noiembrie 2013 17:40:41
Problema Elimin Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
 #include <stdio.h>
#include <algorithm>
using namespace std;

int n,m,r,c,t[8000][8000],tot,sum[8000];
char er[8000];
int rez=0;

void _read()
{
  freopen("elimin.in","r",stdin);
  freopen("elimin.out","w",stdout);

  scanf("%d %d %d %d",&m,&n,&r,&c);

  for(int i=0;i<m;++i)
    for(int j=0;j<n;++j)
       scanf("%d",&t[i][j]);

}

void back(int arg,int poz)
{
    if(poz==n )
      return;
    if(arg==c)
    {
      tot=0;

        for(int i=0;i<m;i++)
        {
           sum[i]=0;
            for(int j=0;j<n;j++)
                if(!er[j]){ sum[i]+=t[i][j]; tot+=t[i][j]; }
        }

       sort(sum,sum+n);

       for(int i=0;i<r;i++)
         tot-=sum[i];

       if(rez < tot)rez=tot;

      return;
    }
    else
    {
    er[poz]=1;
    back(arg+1,poz+1);

    er[poz]=0;
    back(arg,poz+1);

    }

}

int main()
{

 _read();

 back(0,0);

 printf("%d",rez);

return 0;
}