Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int N, seguras=0;
- char tab[502][502];
- char caminho(int i, int j){
- if(tab[i][j]='0'){
- return '0';
- }
- else if(tab[i][j]='1'){
- return '1';
- }
- else{
- if(tab[i][j]=='>'){tab[i][j]=1; tab[i][j]=caminho(i, j+1); return tab[i][j];}
- else if(tab[i][j]=='<'){tab[i][j]=1; tab[i][j]=caminho(i, j-1); return tab[i][j];}
- else if(tab[i][j]=='A'){tab[i][j]=1; tab[i][j]=caminho(i-1, j); return tab[i][j];}
- else if(tab[i][j]=='V'){tab[i][j]=1; tab[i][j]=caminho(i+1, j); return tab[i][j];}
- }
- }
- int main(){
- cin >> N;
- /**Criação de borda**/
- for(int i=0;i<N+2;i++){
- tab[0][i]='0';
- tab[i][0]='0';
- tab[i][N+1]='0';
- tab[N+1][i]='0';
- }
- /**Preenchimento do tabuleiro**/
- for(int i=1;i<=N;i++){
- for(int j=1;j<=N;j++){
- cin >> tab[i][j];
- }
- }
- /**Computação do número de células seguras**/
- for(int i=1;i<=N;i++){
- for(int j=1;j<=N;j++){
- /**Realiza o caminho iniciado pela célula**/
- tab[i][j]=caminho(i, j);
- /**Verifica se o caminho da célula é seguro e computa**/
- if(tab[i][j]=='1'){
- seguras++;
- }
- }
- }
- cout << seguras << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement