Pagini recente » Cod sursa (job #2212582) | Cod sursa (job #1986600) | Cod sursa (job #2238100) | Cod sursa (job #134536) | Cod sursa (job #1736563)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("rj.in");
ofstream fout("rj.out");
int n, m, a[101][101], viz[101][101], maxy;
int dl[8]= {0, -1, -1, -1, 0, 1, 1, 1};
int dc[8]= {1, 1, 0, -1, -1, -1, 0, 1};
queue < pair<int,int> > coada;
bool isOk(int i, int j)
{
return (i>=1 && j>=1 && i<=n && j<=m);
}
void lee()
{
while(!coada.empty())
{
int i = coada.front().first;
int j = coada.front().second;
coada.pop();
viz[i][j] = 1;
for(int d=0; d<8; d++)
{
int ii = i + dl[d];
int jj = j + dc[d];
if(isOk(ii,jj) && !viz[ii][jj] && a[ii][jj]!= -1)
{
a[ii][jj] = a[i][j] + 1;
viz[ii][jj] = 1;
coada.push(make_pair(ii, jj));
}
}
}
}
void citire()
{
char s[101];
fin>>n>>m, fin.get();
for(int i=1; i<=n; i++)
{
fin.getline(s,101);
for(int j=0; j<=m-1; j++)
if(s[j]=='R')
coada.push(make_pair(i, j+1)), a[i][j+1]=1;
else if(s[j]=='J')
coada.push(make_pair(i, j+1)), a[i][j+1]=1;
else if(s[j]=='X')
a[i][j+1] = -1;
}
}
int main()
{
citire();
lee();
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
maxy = max(a[i][j], maxy);
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
if(a[i][j] == maxy)
{
cout<<maxy<<" "<<i<<" "<<j;
exit(0);
}
}