Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- int abs(int n)
- {
- if(n<0)
- {
- return -n;
- }
- return n;
- }
- void conta_estrela(std::vector<char> &v,int posicao, int t_linha, int *r)
- {
- if((posicao >= 0 || posicao <= v.size()) && v[posicao]=='*')
- {
- //std::cout << "posicao:"<<posicao << std::endl;
- *r+=1;
- v[posicao] = '.';
- for (int i = 0; i < 3; ++i)
- {
- if(abs(posicao/t_linha - (posicao - t_linha +1 -i)/t_linha) ==1)
- {
- conta_estrela(v,posicao - t_linha +1 -i,t_linha,r);
- //std::cout<<1<<std::endl;
- }
- }
- for (int i = 0; i < 3; ++i)
- {
- if(abs(posicao/t_linha - (posicao + t_linha -1 +i)/t_linha)==1)
- {
- conta_estrela(v,posicao + t_linha -1 +i,t_linha,r);
- //std::cout<<2<<std::endl;
- }
- }
- conta_estrela(v,posicao + t_linha,t_linha,r);
- conta_estrela(v,posicao - t_linha,t_linha,r);
- if(posicao/t_linha == (posicao+1)/t_linha)
- {
- conta_estrela(v,posicao +1,t_linha,r);
- //std::cout<<3<<std::endl;
- }
- if(posicao/t_linha == (posicao-1)/t_linha)
- {
- conta_estrela(v,posicao -1,t_linha,r);
- //std::cout<<4<<std::endl;
- }
- }
- }
- int main()
- {
- int x,y,resposta =0;
- int rec;
- std::vector<char> v;
- std::cin >> y >>x;
- for (int i = 0; i < x*y; ++i)
- {
- char temp;
- std::cin >> temp;
- v.push_back(temp);
- }
- for (int i = 0; i < x; ++i)
- {
- for (int j = 0; j < y; ++j)
- {
- if(v[i+(j*x)] == '*')
- {
- rec =0;
- conta_estrela(v,i+(j*x),x,&rec);
- if(rec<=1)
- {
- resposta++;
- }
- //std::cout << std::endl;
- //std::cout <<"p: " <<i+(j*x) << std::endl;
- //std::cout << "resposta: " << resposta <<" rec:" <<rec<<std::endl;
- }
- }
- }
- std::cout << resposta;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement