Advertisement
leomaster

2nd Phase EPY Coding Challenge 2004 (1st place)

Mar 14th, 2018
411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.18 KB | None | 0 0
  1. /*
  2. USER: leomaster@in.gr
  3. LANG: C
  4. TASK: dimokritos
  5. */
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8.  
  9. int gps[1403][1403],*lntd,*lttd;
  10. FILE *iostr;
  11.  
  12. int main() {
  13.     int ps,dgt,mvs,vnx,vny;
  14.     iostr = fopen("dimokritos.in", "r");
  15.     fscanf(iostr, "%d", &dgt);
  16.     lntd = (int *) malloc(dgt * sizeof (int));
  17.     lttd = (int *) malloc(dgt * sizeof (int));
  18.     for (ps = 0; ps < dgt; ps++) {
  19.         fscanf(iostr, "%d %d", &lntd[ps], &lttd[ps]);
  20.     }
  21.     vnx = vny = 701;
  22.     fscanf(iostr, "%d\n", &mvs);
  23.     for (ps = 0; ps <= mvs; ps++) {
  24.         if (ps > 0) {
  25.             switch (getc(iostr)) {
  26.                 case 'U': vny++; break;
  27.                 case 'D': vny--; break;
  28.                 case 'R': vnx++; break;
  29.                 case 'L': vnx--; break;
  30.             }
  31.         }
  32.         gps[vnx-1][vny-1]++; gps[vnx][vny]++; gps[vnx+1][vny+1]++;
  33.         gps[vnx][vny-1]++; gps[vnx+1][vny]++; gps[vnx-1][vny+1]++;
  34.         gps[vnx+1][vny-1]++; gps[vnx-1][vny]++; gps[vnx][vny+1]++;
  35.     }
  36.     fclose(iostr);
  37.     iostr = fopen("dimokritos.out", "w");
  38.     if (mvs > 0) {
  39.         for (ps = 0; ps < dgt; ps++)
  40.             if (gps[lntd[ps]+701][lttd[ps]+701] > 0)
  41.                 fprintf(iostr, "%d %d\n", ps+1, gps[ps[lntd]+701][ps[lttd]+701]);
  42.     } else {
  43.         fprintf(iostr, "-1\n");
  44.     }
  45.     fclose(iostr);
  46.     free(lntd), free(lttd);
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement