Pagini recente » Borderou de evaluare (job #1471805) | Borderou de evaluare (job #205639) | Borderou de evaluare (job #1639179) | Borderou de evaluare (job #528877) | Cod sursa (job #2341178)
#include <bitset>
#include<cstdio>
#define NMAX 200
using namespace std;
int a[NMAX+1][NMAX+1];
int n,m;
int absolut(int a, int b)
{
a=a-b;
if(a<0)
a=a*(-1);
return a;
}
int semn;
int recursiv(int col, int lin, int a[NMAX+1][NMAX+1], int val)
{
if(lin==n)
if(val<=0)
return 0;
else
{
semn=1;
return 1;
}
else
if(val<0)
return 0;
else
{
if(col>1)
recursiv (col-1,lin+1,a,val-absolut(a[lin][col],a[lin+1][col-1]));
recursiv (col,lin+1,a,val-absolut(a[lin][col],a[lin+1][col]));
if(col<m)
recursiv (col+1,lin+1,a,val-absolut(a[lin][col],a[lin+1][col+1]));
}
}
int main()
{
int i,j, p;
freopen("robot.in","r",stdin);
freopen("robot.out","w",stdout);
scanf("%d%d%d",&p,&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=m;i++)
{
semn=0;
int w=recursiv(i,1,a,p);
if(semn==1)
printf("%d ",i);
}
return 0;
}