Pagini recente » Cod sursa (job #523995) | Cod sursa (job #1299467) | Cod sursa (job #1241910) | Cod sursa (job #3171112) | Cod sursa (job #1808907)
#include <iostream>
#include <fstream>
/*Din vazduh cumplita iarna cerne norii de zapada
Lungi troiene calatoare adunate-n cer gramada
fulgii zbor, plutesc in aer ca un roi de fluturi albi
Raspandind fiori de gheata pe ai tarii umeri dalbi.
Ziua ninge Noaptea ninge Dimineata ninge iara!
Ca o zale argintie se imbraca mandra tara.
Soarele rotund si palid se prevede printre nori
Ca un vis de tinerete pintre anii trecatori.
Tot e alb, pe camp, pe dealuri, imprejur in departare
Ca fantasme albe, plopii insirati se perd in zare
Si pe-ntinderea pustie, fara urme fara drum
Se vad satele perdute sub clabuci albii de fum.
Dar ninsoarea inceteaza norii fug doritul soare
Straluceste si dizmiarda oceanul de ninsoare
Iat-o sanie usoara care trece printre vai...
In vazduh voios rasuna, clinchete de zurgalai... */
using namespace std;
ifstream f("rj.in"); ofstream g("rj.out");
string s;
struct{short x,y;} v[10003];
short h,u,a[102][102],n,m,b=1,k=0,i,j,d_l[4]={0,-1,0,1}, d_c[4]={-1,0,1,0};
int verif(short h, short u)
{
if(a[h][u]=='0' && h>=1 && h<=n && u>=1 && u<=m) return 1;
else return 0;
}
int main()
{
f>>n>>m; getline(f,s);
for(i=1;i<=n;++i)
{
getline(f,s);
for(j=0;j<m;++j)
{
if(s[j]=='X') a[i][j+1]=-1;
else if(s[j]=='R' || s[j]=='J')
{
++k;
v[k].x=i;
v[k].y=j+1;
}
}
}
while(b<=k)
{
i=v[b].x;
j=v[b].y;
for(int c=0;c<=3;++c)
{
h=d_l[c]+i;
u=d_c[c]+j;
if(verif(h,u))
{
a[h][u]=a[i][j]+1;
++k;
v[k].x=h;
v[k].y=u;
}
}
++b;
}
for(i=1;i<=n;++i)
{
for(int j=1;j<=m;++j)
{
cout<<a[i][j]<<' ';
}
cout<<endl;
}
return 0;
}