Pagini recente » Cod sursa (job #1081351) | Cod sursa (job #3030688) | Cod sursa (job #4185) | Cod sursa (job #2249819) | Cod sursa (job #491218)
Cod sursa(job #491218)
#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);
}