Cod sursa(job #464713)

Utilizator zloteanu.adrianzloteanu adrian nichita zloteanu.adrian Data 21 iunie 2010 14:55:09
Problema Elimin Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <string.h>
#include <algorithm>
using namespace std;
ifstream q ("elimin.in");
ofstream w ("elimin.out");
int v[555][555];
int n,m,r,c,sol[555],S[555],S2[555],best;
void back(int k)
{int i;
if(k==c+1)
 {int i,j,sum=0;
 memcpy(S2,S,sizeof(S));
 for(i=1;i<=c;i++)
   for(j=1;j<=n;j++)
	 S2[j]-=v[j][sol[i]];
 sort(S2+1,S2+n+1);
 for(i=r+1;i<=n;i++)
    sum+=S2[i];
 if(sum>best)
  best=sum;
 return;}
for(i=sol[k-1]+1;i<=m;i++)
  {sol[k]=i;
  back(k+1);}}
int main()
{q>>n>>m>>r>>c;
int i,j;
for(i=1;i<=n;i++)
  for(j=1;j<=m;j++)
	q>>v[i][j];
if(n<m)
 {for(i=1;i<=n;i++)
	for(j=1;j<=m;j++)
	  if(j>i)
	   swap(v[i][j],v[j][i]);
 swap(n,m);
 swap(r,c);}
for(i=1;i<=n;i++)
  for(j=1;j<=m;j++)
	S[i]+=v[i][j];
back(1);
w<<best<<'\n';
return 0;}