Advertisement
lucabbenetti

10

Sep 17th, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.81 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int memo[100000];
  4. int c = 0;
  5.  
  6. void loop(char **matriz, int n, char **saida) {
  7.     int i, j, k, m;
  8.     int output;
  9.  
  10.     for (i = 0; i < n; i++) {
  11.         for (j = 0; j < n; j++) {
  12.             k = i; m = j;
  13.             c = 0;
  14.             output = 0;
  15.             while(matriz[k][m] != 'O') {
  16.                 if(k == i && m == j && c != 0) {
  17.                     saida[i][j] = 'L';
  18.                     break;
  19.                 }
  20.                 if(matriz[k][m] == 'V') {
  21.                     k++;
  22.                 }
  23.                 else if(matriz[k][m] == 'A') {
  24.                     k--;   
  25.                 }
  26.                 else if(matriz[k][m] == '>') {
  27.                     m++;
  28.                 }
  29.                 else if(matriz[k][m] == '<') {
  30.                     m--;
  31.                 }
  32.                 if (matriz[k][m] == 'O') {
  33.                     matriz[i][j] = 'O';
  34.                     saida[i][j] = 'O';
  35.                     break;
  36.                 }
  37.                 c++;
  38.                 if (c == (n*n)+1) {
  39.                     saida[i][j] = 'I';
  40.                     break;
  41.                 }
  42.             }
  43.         }  
  44.     }
  45.  
  46. }
  47.  
  48. int main () {
  49.     int n;
  50.     scanf("%d", &n);
  51.  
  52.     int i, j;
  53.     char **matriz;
  54.     char **saida;
  55.     matriz = (char**) malloc(n * sizeof(char *));
  56.     saida = (char**) malloc(n * sizeof(char*));
  57.     for (i = 0; i < n; ++i) {
  58.         matriz[i] = (char*) malloc (n * sizeof(char)); 
  59.         saida[i] = (char*) malloc (n*sizeof (char));
  60.     }
  61.  
  62.     for (i = 0; i < n; i++) {
  63.         scanf(" ");
  64.         for (j = 0; j < n; j++) {
  65.             scanf("%c", &matriz[i][j]);
  66.         }  
  67.     }
  68.  
  69.  
  70.     for (i = 0; i < n; ++i) {
  71.         for (j = 0; j < n; ++j) {
  72.             if(matriz[i][j] == '>' && j + 1 >= n) {
  73.                     matriz[i][j] = 'O';
  74.                     saida[i][j] = 'O';
  75.             }
  76.             else if(matriz[i][j] == '<' && j - 1 < 0) {
  77.                 matriz[i][j] = 'O';
  78.                 saida[i][j] = 'O';
  79.             }
  80.             else if(matriz[i][j] == 'A' && i-1 < 0) {
  81.                 matriz[i][j] = 'O';
  82.                 saida[i][j] = 'O';
  83.             }
  84.             else if(matriz[i][j] == 'V' && i+1 >= n) {
  85.                 matriz[i][j] = 'O';
  86.                 saida[i][j] = 'O';
  87.             }
  88.         }
  89.     }
  90.  
  91.     loop(matriz, n, saida);
  92.     for (i = 0; i < n; i++) {
  93.         for (j = 0; j < n; j++) {
  94.             printf("%c", saida[i][j]);
  95.         }   printf("\n");
  96.     }
  97.  
  98.  
  99.     return 0;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement