Cod sursa(job #491218)

Utilizator Balmus_MaximBalmus Maximilian Balmus_Maxim Data 10 octombrie 2010 18:55:57
Problema Elimin Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <stdio.h>
#include <algorithm>
#define maxn 800
using namespace std;

int m,n,r,c,i,j,a[maxn][maxn],con[maxn],s[maxn];

void back1(int p,int pi)
{
	int i,j;
	if(k==r){
		for(i=1;i<=m;i++){
			for(j=1;j<=n;j++){
				s[j]+=a[i][j]*st[i];
			}
		}
		sort(s+1,s+n+1);
	}else{
		for(i=pi+1;p<=m-r+p;p++){
			st[i]=0;
			back1(p+1,i);
			st[i]=1;
		}
	}
}	

void back2(int p,int pi)
{
	int i,j;
	if(k==c){
		for(i=1;i<=m;i++){
			for(j=1;j<=n;j++){
				s+=a[i][j]*st[j];
			}
		}
	}else{
		for(j=pi+1;j<=m-r+p;p++){
			st[j]=0;
			back1(p+1,i);
			st[j]=1;
		}
	}
}			

int main()
{
	freopen("elimin.in","r",stdin);
	freopen("elimin.out","w",stdout);
	scanf("%d",&m);
	scanf("%d",&n;
	scanf("%d",&r;
	scanf("%d",&c);
	for(i=1;i<=m;i++){
		for(j=1;j<=n;j++){
			scanf("%d",a[i][j]);
			if(n<=m){
				con[j]=1;
			}
		}
		if(n<m){
			con[i]=1;
		}
	}
	}
	if(m<=n){
		back1(0,0);
	}else{
		back2(0,0);
	}