Advertisement
rdsedmundo

tarzan.c

Apr 12th, 2014
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.17 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main () {
  5.  
  6.     int nArv, distancia;
  7.  
  8.     scanf("%d %d", &nArv, &distancia);
  9.  
  10.     int i, j, k, coords[nArv][2];
  11.  
  12.     for(i = 0; i < nArv; i++)
  13.         scanf("%d %d", &coords[i][0], &coords[i][1]);
  14.  
  15.     int caminho[nArv][nArv];
  16.  
  17.     for(i = 0; i < nArv; i++) {
  18.         for(j = 0; j < nArv; j++) {
  19.             if(i == j)
  20.                 continue;
  21.  
  22.             int x = coords[i][0], y = coords[i][1];
  23.  
  24.             int x2 = coords[j][0], y2 = coords[j][1];
  25.  
  26.             int delta_x = abs(x - x2), delta_y = abs(y - y2);
  27.  
  28.             int distancia_arv = sqrt(pow(delta_x, 2) + pow(delta_y, 2));
  29.    
  30.             if(distancia_arv <= distancia) {
  31.                 caminho[i][j] = 1;
  32.                 caminho[j][i] = 1;
  33.             } else {
  34.                 caminho[i][j] = 0;
  35.                 caminho[j][i] = 0;
  36.             }
  37.         }
  38.     }
  39.  
  40.     for(i = 0; i < nArv; i++) {
  41.         for(j = 0; j < nArv; j++) {
  42.             if(i == j)
  43.                 continue;
  44.  
  45.             if(!caminho[i][j]) {
  46.                 for(k = 0; k < nArv; k++) {
  47.                     if((caminho[i][k] && caminho[k][j]) || (caminho[j][k] && caminho[k][i])) {
  48.                         caminho[i][j] = 1;
  49.                         caminho[j][i] = 1;
  50.                     }  
  51.                 }
  52.             }
  53.         }
  54.     }
  55.  
  56.     for(i = 0; i < nArv; i++)
  57.         if(!caminho[i][i+1] && (i+1) < nArv) {
  58.             printf("N");
  59.             return 0;
  60.         }
  61.  
  62.     printf("S");
  63.  
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement