GastonFontenla

Untitled

May 23rd, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. bool posValida(int i, int j, vector <string> &vec)
  7. {
  8.     if(i >= vec.size())
  9.         return false;
  10.     if(j >= vec[i].size())
  11.         return false;
  12.     return true;
  13. }
  14.  
  15. int main()
  16. {
  17.  
  18.     int cont, cont2;
  19.  
  20.     int cantcont=0;
  21.  
  22.     int pasada=0;
  23.  
  24.     vector <int> cant('0');
  25.  
  26.     char fil, col;
  27.  
  28.     cin>>fil>>col;
  29.  
  30.     do
  31.     {
  32.  
  33.         if(pasada>0) cantcont++;
  34.  
  35.         string renglon;
  36.  
  37.         vector <string> stars(fil);
  38.  
  39.         for(cont=0; cont<col-'0'+2; cont++) stars[0].push_back('.');
  40.  
  41.         for(cont=1; cont<fil-'0'+1; cont++)
  42.         {
  43.             cin>>renglon;
  44.             for(cont2=0; cont2<=col-'0'; cont2++)
  45.             {
  46.                 if(cont2==0) stars[cont].push_back('.');
  47.                 if(cont2==col-'0') stars[cont].push_back('.');
  48.                 stars[cont].push_back(renglon[cont2]);
  49.             }
  50.         }
  51.  
  52.         for(cont2=0; cont2<col-'0'+2; cont2++)
  53.         {
  54.             if(cont >= stars.size())
  55.             {
  56.  
  57.                 cout << "ERROR: queres acceder a una posicion que no existe" << endl;
  58.             }
  59.             stars[cont].push_back('.');
  60.         }
  61.  
  62.         for(cont=0; cont<fil-'0'+2; cont++)
  63.         {
  64.             for(cont2=0; cont2<col-'0'+2; cont2++)
  65.             {
  66.                 if(posValida(cont, cont2, stars))
  67.                 {
  68.                     cout << "ERROR: queres acceder a una posicion que no existe" << endl;
  69.                 }
  70.  
  71.                 if(stars[cont][cont2]=='*')
  72.                 {
  73.                     if(posValida(cont-1, cont2, stars) || posValida(cont-1, cont2-1, stars) ||
  74.                             posValida(cont-1, cont2+1, stars) || posValida(cont, cont2-1, stars) ||
  75.                             posValida(cont, cont2+1, stars) || posValida(cont+1, cont2, stars) ||
  76.                             posValida(cont+1, cont2-1, stars) || posValida(cont+1, cont2+1, stars))
  77.                     {
  78.  
  79.                         cout << "ERROR: queres acceder a una posicion que no existe" << endl;
  80.                     }
  81.  
  82.                     if(stars[cont-1][cont2]=='.'&&stars[cont-1][cont2-1]=='.'&&stars[cont-1][cont2+1]=='.'&&stars[cont][cont2-1]=='.'&&stars[cont][cont2+1]=='.'&&
  83.                             stars[cont+1][cont2]=='.'&&stars[cont+1][cont2-1]=='.'&&stars[cont+1][cont2+1]=='.')
  84.                     {
  85.                         if(cantcont >= cant.size())
  86.                         {
  87.                             cout << "ERROR: queres acceder a una posicion que no existe" << endl;
  88.                         }
  89.                         cant[cantcont]++;
  90.                     }
  91.                 }
  92.             }
  93.         }
  94.  
  95.         cin>>fil>>col;
  96.  
  97.         pasada++;
  98.  
  99.     }
  100.     while(fil!='0'||col!='0');
  101.  
  102.     cant.resize(pasada);
  103.  
  104.     for(int cont3=0; cont3<cant.size(); cont3++) cout<<cant[cont3]<<endl;
  105.  
  106.     return 0;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment