// Lab 8, Working with structs
// Programmer : Maiar Khattab
// Editor(s) used : Code Blocks 13.12
// Compiler(s) used : Code Blocks 13.12
#include<iostream>
using std:: cout ;
using std:: endl ;
#include<cstdlib>
//struct def
struct tod
{
int hour; // the hr , 0-23
int minute; // the min, 0-59
int second; //the sec, 0-59
char descr [ 32 ] ; //the description of the time of day
} ;
//void printTod(const tod&);
int main ( )
{
cout << "Lab 8, Working With structs\n " ;
cout << "Programmer: Maiar Khattab\n " ;
cout << "Editor(s) used: Code Blocks 13.12\n " ;
cout << "Compiler(s) used: Code Blocks 13.12\n " ;
cout << "File: " << __FILE__ << endl;
cout << "Complied: " << __DATE__ << " at " << __TIME__ << endl << endl;
tod theTime[ ] = { { 12 ,0 ,0 , "noon" } ,
{ 0 ,0 ,0 ," midnight" } ,
{ 6 ,00 ,00 ," supper " } ,
{ 11 ,30 ,0 ,"bedtime" } } ;
for ( int i; i < 5 ; i++ )
{
char descr [ 32 ] ;
cout << theTime[ i] .descr << " is " << theTime[ i] .hour << ':'
<< theTime[ i] .minute << ":" << theTime[ i] .second << endl;
}
}
IC8vIExhYiA4LCBXb3JraW5nIHdpdGggc3RydWN0cwovLyBQcm9ncmFtbWVyIDogTWFpYXIgS2hhdHRhYgovLyBFZGl0b3IocykgdXNlZCA6IENvZGUgQmxvY2tzIDEzLjEyCi8vIENvbXBpbGVyKHMpIHVzZWQgOiBDb2RlIEJsb2NrcyAxMy4xMgoKI2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIHN0ZDo6Y291dDsKdXNpbmcgc3RkOjplbmRsOwoKI2luY2x1ZGU8Y3N0ZGxpYj4KCi8vc3RydWN0IGRlZgpzdHJ1Y3QgdG9kCnsKaW50IGhvdXI7Ly8gdGhlIGhyICwgMC0yMwppbnQgbWludXRlOy8vIHRoZSBtaW4sIDAtNTkKaW50IHNlY29uZDsvL3RoZSBzZWMsIDAtNTkKY2hhciBkZXNjciBbMzJdOy8vdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSB0aW1lIG9mIGRheQoKfTsKLy92b2lkIHByaW50VG9kKGNvbnN0IHRvZCYpOwppbnQgbWFpbiAoKQp7CiAgY291dCA8PCAiTGFiIDgsIFdvcmtpbmcgV2l0aCBzdHJ1Y3RzXG4iOwogIGNvdXQgPDwgIlByb2dyYW1tZXI6IE1haWFyIEtoYXR0YWJcbiI7CiAgY291dCA8PCAiRWRpdG9yKHMpIHVzZWQ6IENvZGUgQmxvY2tzIDEzLjEyXG4iOwogIGNvdXQgPDwgIkNvbXBpbGVyKHMpIHVzZWQ6IENvZGUgQmxvY2tzIDEzLjEyXG4iOwogIGNvdXQgPDwgIkZpbGU6ICIgPDwgX19GSUxFX18gPDwgZW5kbDsKICBjb3V0IDw8ICJDb21wbGllZDogIiA8PCBfX0RBVEVfXyA8PCAiIGF0ICIgPDwgX19USU1FX18gPDwgZW5kbCA8PCBlbmRsOwoKICAgICAgICAgICAgdG9kIHRoZVRpbWVbXSA9ICB7ezEyLDAsMCwgIm5vb24ifSwKICAgICAgICAgICAgezAsMCwwLCIgbWlkbmlnaHQifSwKICAgICAgICAgICAgezYsMDAsMDAsIiBzdXBwZXIgIn0sCiAgICAgICAgICAgIHsxMSwzMCwwLCJiZWR0aW1lIn19OwogICAgICAgICAgCiAgICAgICAgICBmb3IoaW50IGk7IGkgPDU7IGkrKykKICAgICAgICAgIHsKICAgICAgICAgICAgIGNoYXIgZGVzY3IgWzMyXTsgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICBjb3V0IDw8IHRoZVRpbWVbaV0uZGVzY3IgPDwgIiBpcyAiIDw8IHRoZVRpbWVbaV0uaG91ciA8PCAnOicgCiAgICAgICAgICAgIDw8IHRoZVRpbWVbaV0ubWludXRlIDw8ICI6IiA8PCB0aGVUaW1lW2ldLnNlY29uZCA8PCBlbmRsOyAKICAgICAgICAgIH0KfQogICAgICAKICA=
stdin
ICNpbmNsdWRlICZsdDtiaXRzL3N0ZGMrKy5oJmd0OwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBkYXRvc3sKaW50IHgsIHksIHBhc287Cn07CnF1ZXVlJmx0O2RhdG9zJmd0O3NlZ3VpcgpzZWd1aXIgbm93LCBuZXh0OwoKaW50IGR4W109ezEsLTEsMCwwfTsKaW50IGR5W109ezAsMCwxLC0xfTsKCmludCBNLCBOLCBtYXlvcjsKCmludCBtYWluKCl7CmNpbiAmZ3Q7Jmd0O00gJmd0OyZndDtOOwpjaGFyIG1hcGFbTSs1XVtOKzVdOwppbnQgbXBbTSs1XVtOKzVdOwoKZm9yKGludCBpPTA7IGkmbHQ7TTsgaSsrKXsKIGZvcihpbnQgaj0wO2ombHQ7TjtqKyspewogIGNpbiAmZ3Q7Jmd0OyBtYXBhW2ldW2pdOwogfQp9Cgpmb3IoaW50IGk9MDsgaSZsdDtNOyBpKyspewogZm9yKGludCBqPTA7aiZsdDtOO2orKyl7CiAgaWYobWFwYVtpXVtqXT09J0cnKXsKICAgbmV4dC54PWk7CiAgIG5leHQueT1qOwogICBuZXh0LnBhc289MDsKICAgc2VndWlyLnB1c2gobmV4dCk7CiAgIHdoaWxlKCFzZWd1aXIuZW1wdHkoKSl7CiAgICBub3c9c2VndWlyLmZyb250KCk7CiAgICBzZWd1aXIucG9wKCk7CiAgICBmb3IoaW50IGs9MDsgayZsdDs0OyBrKyspewogICAgIGludCBvWD1ub3cueCtkeFtrXTsKICAgICBpbnQgb1k9bm93LnkrZHlba107CiAgICAgbmV4dC5wYXNvPW5vdy5wYXNvKzE7CiAgICAgaWYob1gmZ3Q7PTAmYW1wOyZhbXA7b1gmbHQ7TSZhbXA7JmFtcDtvWSZndDs9MCZhbXA7JmFtcDtvWSZsdDtOKXsKICAgICAgaWYobWFwYVtvWF1bb1ldPT0nLicmYW1wOyZhbXA7bXBbb1hdW29ZXSZndDtuZXh0LnBhc28pewogICAgICAgbXBbb1hdW29ZXT1uZXh0LnBhc287CiAgICAgICBuZXh0Lng9b1g7CiAgICAgICBuZXh0Lnk9b1k7CiAgICAgICBzZWd1aXIucHVzaChuZXh0KTsKICAgICAgfQogICAgIH0KICAgIH0KICAgfQogIH0KIH0KfQoKZm9yKGludCBpPTA7IGkmbHQ7TTsgaSsrKXsKIGZvcihpbnQgaj0wOyBqJmx0O047IGorKyl7CiAgaWYobXBbaV1bal0mZ3Q7bWF5b3IpewogICBtYXlvcj1tcFtpXVtqXTsKICB9CiB9Cn0KCmNvdXQgJmx0OyZsdDsgbWF5b3I7CnJldHVybiAwOwp9
#include <bits/stdc++.h>
using namespace std;
struct datos{
int x, y, paso;
};
queue<datos>seguir
seguir now, next;
int dx[]={1,-1,0,0};
int dy[]={0,0,1,-1};
int M, N, mayor;
int main(){
cin >>M >>N;
char mapa[M+5][N+5];
int mp[M+5][N+5];
for(int i=0; i<M; i++){
for(int j=0;j<N;j++){
cin >> mapa[i][j];
}
}
for(int i=0; i<M; i++){
for(int j=0;j<N;j++){
if(mapa[i][j]=='G'){
next.x=i;
next.y=j;
next.paso=0;
seguir.push(next);
while(!seguir.empty()){
now=seguir.front();
seguir.pop();
for(int k=0; k<4; k++){
int oX=now.x+dx[k];
int oY=now.y+dy[k];
next.paso=now.paso+1;
if(oX>=0&&oX<M&&oY>=0&&oY<N){
if(mapa[oX][oY]=='.'&&mp[oX][oY]>next.paso){
mp[oX][oY]=next.paso;
next.x=oX;
next.y=oY;
seguir.push(next);
}
}
}
}
}
}
}
for(int i=0; i<M; i++){
for(int j=0; j<N; j++){
if(mp[i][j]>mayor){
mayor=mp[i][j];
}
}
}
cout << mayor;
return 0;
}