Last active
May 26, 2020 19:19
-
-
Save anitainfo/da3982a13475919555c5ee4e07b5fb9f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<bits/stdc++.h> //biblioteca utilizada | |
using namespace std; | |
const int MAXN=1100; //define o valor de MAXN | |
int v[MAXN][MAXN]; //declara uma matriz com tamanho MAXN x MAXN | |
int vA[4]={1,0,-1,0}; //declara um vetor 'vA' já com valores na memória | |
int vB[4]={0,1,0,-1}; //declara um vetor 'vA' já com valores na memória | |
int main() | |
{ | |
int L,C,i,j,A,B,lasta=0,lastb=0,cont=0,a,b,k,d=0,la,lb; //declaração de variáveis | |
scanf("%d %d", &L, &C); //lê a primeira linha de entrada, ou seja, 'L' e 'C' | |
scanf("%d %d", &A, &B); //lê a segunda linha de entrada, ou seja, 'A' e 'B' | |
for(i=1; i<=L; i++) //parte 1 do loop para ler todos os números da matriz (nesse caso, ele vai linha por linha) | |
{ | |
for(j=1; j<=C; j++) //parte 2 do loop para ler todos os números da matriz (nesse caso, ele vai coluna por coluna) | |
{ | |
scanf("%d", &v[i][j]); //lê o valor (0 ou 1) de uma posição na matriz | |
} | |
} | |
lasta=A; //'lasta' assume o valor de 'A' | |
lastb=B; //'lastb' assume o valor de 'B' | |
while(cont<=L*C) //enquanto não checar todos os pontos de uma matriz | |
{ | |
for(k=0; k<4; k++) //loop para checar os 4 vizinhos | |
{ | |
d=0; //'d' é zerado | |
a=lasta+vA[k]; //'a' assume o valor do 'eixo x' de um vizinho | |
b=lastb+vB[k]; //'b' assume o valor do 'eixo y' de um vizinho | |
if(a==la && b==lb) //se o vizinho for o vizinho anterior, ou seja, o vizinho que deu origem a esse novo ponto | |
{ | |
d=1; //'d' assume o valor de 1 para não considerarmos esse vizinho | |
} | |
if(v[a][b]==1 && d!=1) //se o vizinho tem valor 1 e não é o vizinho anterior | |
{ | |
la=lasta; //'la' assume o valor de 'lasta' | |
lb=lastb; //'lb' assume o valor de 'lastb' | |
lasta=a; //'lasta' assume o valor de 'a' | |
lastb=b; //'lastb' assume o valor de 'b' | |
k=5; //'k' assume o valor de 5 para encerrar esse loop | |
} | |
} | |
cont++; //soma-se 1 a variável cont | |
} | |
printf("%d %d", lasta, lastb); //imprimi 'lasta' e 'lastb', ou seja, os pontos das coordenadas x e y, respectivamente da posição final do robô | |
return 0; //retorna a 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment