Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- bool posValida(int i, int j, vector <string> &vec)
- {
- if(i >= vec.size())
- return false;
- if(j >= vec[i].size())
- return false;
- return true;
- }
- int main()
- {
- int cont, cont2;
- int cantcont=0;
- int pasada=0;
- vector <int> cant('0');
- char fil, col;
- cin>>fil>>col;
- do
- {
- if(pasada>0) cantcont++;
- string renglon;
- vector <string> stars(fil);
- for(cont=0; cont<col-'0'+2; cont++) stars[0].push_back('.');
- for(cont=1; cont<fil-'0'+1; cont++)
- {
- cin>>renglon;
- for(cont2=0; cont2<=col-'0'; cont2++)
- {
- if(cont2==0) stars[cont].push_back('.');
- if(cont2==col-'0') stars[cont].push_back('.');
- stars[cont].push_back(renglon[cont2]);
- }
- }
- for(cont2=0; cont2<col-'0'+2; cont2++)
- {
- if(cont >= stars.size())
- {
- cout << "ERROR: queres acceder a una posicion que no existe" << endl;
- }
- stars[cont].push_back('.');
- }
- for(cont=0; cont<fil-'0'+2; cont++)
- {
- for(cont2=0; cont2<col-'0'+2; cont2++)
- {
- if(posValida(cont, cont2, stars))
- {
- cout << "ERROR: queres acceder a una posicion que no existe" << endl;
- }
- if(stars[cont][cont2]=='*')
- {
- if(posValida(cont-1, cont2, stars) || posValida(cont-1, cont2-1, stars) ||
- posValida(cont-1, cont2+1, stars) || posValida(cont, cont2-1, stars) ||
- posValida(cont, cont2+1, stars) || posValida(cont+1, cont2, stars) ||
- posValida(cont+1, cont2-1, stars) || posValida(cont+1, cont2+1, stars))
- {
- cout << "ERROR: queres acceder a una posicion que no existe" << endl;
- }
- if(stars[cont-1][cont2]=='.'&&stars[cont-1][cont2-1]=='.'&&stars[cont-1][cont2+1]=='.'&&stars[cont][cont2-1]=='.'&&stars[cont][cont2+1]=='.'&&
- stars[cont+1][cont2]=='.'&&stars[cont+1][cont2-1]=='.'&&stars[cont+1][cont2+1]=='.')
- {
- if(cantcont >= cant.size())
- {
- cout << "ERROR: queres acceder a una posicion que no existe" << endl;
- }
- cant[cantcont]++;
- }
- }
- }
- }
- cin>>fil>>col;
- pasada++;
- }
- while(fil!='0'||col!='0');
- cant.resize(pasada);
- for(int cont3=0; cont3<cant.size(); cont3++) cout<<cant[cont3]<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment