Pagini recente » Cod sursa (job #2534793) | Cod sursa (job #256655) | Cod sursa (job #2818305) | Cod sursa (job #2882006) | Cod sursa (job #400507)
Cod sursa(job #400507)
#include <iostream>
#include <stdio.h>
using namespace std;
int n,m,a[100][100],xi,yi,xf,yf,cx[3000],cy[3000],b[100][100];
const int dx[4]={-1,0,1,0};
const int dy[4]={0,1,0,-1};
struct drumul{
int s; int t;
}e[10000];
void citire(){
freopen ("traseu.in","r",stdin);
scanf ("%d %d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf ("%d",&a[i][j]);
scanf("%d %d %d %d",&xi,&yi,&xf,&yf);
}
void bordare(int x[50][50]){
for(int i=0;i<=m+1;i++)
{
x[0][i]=-1;
x[n+1][i]=-1;
}
for(int i=0;i<=n+1;i++)
{
x[i][0]=-1;
x[i][m+1]=-1;
}
}
void lee(){
int nr=1;
b[xi][yi]=1;
cx[0]=xi;
cy[0]=yi;
for(int i=0;i<nr;i++)
{
if ((b[cx[i]][cy[i]]==0)&&(a[cx[i]][cy[i]]!=0))
for(int k=0;k<4;k++)
{
b[cx[i]+dx[k]][cy[i]+dy[k]]=b[cx[i]][cy[i]]+1;
cx[nr]=cx[i]+dx[k];
cy[nr]=cx[i]+dy[k];
nr++;
}
}
}
void drum()
{
e[0].s=xi;e[0].t=yi;
int p=0;
int f[30000]={0};
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
if (f[b[i][j]]==0)
{
f[b[i][j]]=1;
p++;
e[p].s=i;e[p].t=j;
}
for (int i=1;i<=p;i++)
cout<<e[i].s<<" "<<e[i].t<<endl;
}
int main()
{
freopen ("traseu.out","w",stdout);
citire();
bordare(a);
bordare(b);
drum();
for(int i=0;i<=n+1;i++)
{
for(int j=0;j<=m+1;j++)
printf("%d ",b[i][j]);
printf ("\n");
}
return 0;
}