Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.31 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int N, seguras=0;
  5. char tab[502][502];
  6.  
  7. char caminho(int i, int j){
  8. if(tab[i][j]='0'){
  9. return '0';
  10. }
  11. else if(tab[i][j]='1'){
  12. return '1';
  13. }
  14. else{
  15. if(tab[i][j]=='>'){tab[i][j]=1; tab[i][j]=caminho(i, j+1); return tab[i][j];}
  16. else if(tab[i][j]=='<'){tab[i][j]=1; tab[i][j]=caminho(i, j-1); return tab[i][j];}
  17. else if(tab[i][j]=='A'){tab[i][j]=1; tab[i][j]=caminho(i-1, j); return tab[i][j];}
  18. else if(tab[i][j]=='V'){tab[i][j]=1; tab[i][j]=caminho(i+1, j); return tab[i][j];}
  19. }
  20. }
  21.  
  22. int main(){
  23. cin >> N;
  24. /**Criação de borda**/
  25. for(int i=0;i<N+2;i++){
  26. tab[0][i]='0';
  27. tab[i][0]='0';
  28. tab[i][N+1]='0';
  29. tab[N+1][i]='0';
  30. }
  31. /**Preenchimento do tabuleiro**/
  32. for(int i=1;i<=N;i++){
  33. for(int j=1;j<=N;j++){
  34. cin >> tab[i][j];
  35. }
  36. }
  37. /**Computação do número de células seguras**/
  38. for(int i=1;i<=N;i++){
  39. for(int j=1;j<=N;j++){
  40. /**Realiza o caminho iniciado pela célula**/
  41. tab[i][j]=caminho(i, j);
  42. /**Verifica se o caminho da célula é seguro e computa**/
  43. if(tab[i][j]=='1'){
  44. seguras++;
  45. }
  46. }
  47. }
  48. cout << seguras << endl;
  49. return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement