Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- int main () {
- int nArv, distancia;
- scanf("%d %d", &nArv, &distancia);
- int i, j, k, coords[nArv][2];
- for(i = 0; i < nArv; i++)
- scanf("%d %d", &coords[i][0], &coords[i][1]);
- int caminho[nArv][nArv];
- for(i = 0; i < nArv; i++) {
- for(j = 0; j < nArv; j++) {
- if(i == j)
- continue;
- int x = coords[i][0], y = coords[i][1];
- int x2 = coords[j][0], y2 = coords[j][1];
- int delta_x = abs(x - x2), delta_y = abs(y - y2);
- int distancia_arv = sqrt(pow(delta_x, 2) + pow(delta_y, 2));
- if(distancia_arv <= distancia) {
- caminho[i][j] = 1;
- caminho[j][i] = 1;
- } else {
- caminho[i][j] = 0;
- caminho[j][i] = 0;
- }
- }
- }
- for(i = 0; i < nArv; i++) {
- for(j = 0; j < nArv; j++) {
- if(i == j)
- continue;
- if(!caminho[i][j]) {
- for(k = 0; k < nArv; k++) {
- if((caminho[i][k] && caminho[k][j]) || (caminho[j][k] && caminho[k][i])) {
- caminho[i][j] = 1;
- caminho[j][i] = 1;
- }
- }
- }
- }
- }
- for(i = 0; i < nArv; i++)
- if(!caminho[i][i+1] && (i+1) < nArv) {
- printf("N");
- return 0;
- }
- printf("S");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement