Advertisement
VF-

Untitled

VF-
Nov 26th, 2022 (edited)
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.62 KB | Source Code | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     FILE *txt;
  7.     int hegy, viz, vihar, szelesseg, magassag, alkalmas;
  8.  
  9.     char *terkep;
  10.  
  11.     txt = fopen("be.txt", "r");
  12.     fscanf(txt, "%d %d %d\n", &hegy, &viz, &vihar);
  13.     fscanf(txt, "%d %d\n", &magassag, &szelesseg);
  14.  
  15.     terkep = malloc((szelesseg + 1) * magassag * sizeof(char));
  16.  
  17.     fread(terkep, sizeof(char), (szelesseg + 1) * magassag, txt);
  18.  
  19.     fclose(txt);
  20.  
  21.     for (int y = 0; y < magassag; y++) {
  22.         for (int x = 0; x < szelesseg; x++) {
  23.             char lehet = terkep[y * (szelesseg + 1) + x] == '0' || terkep[y * (szelesseg + 1) + x] == '~';
  24.  
  25.             for (int y2 = 0; y2 < magassag; y2++) {
  26.                 for (int x2 = 0; x2 < szelesseg; x2++) {
  27.                     lehet |= (terkep[y2 * (szelesseg + 1) + x2] == 'A' && abs(x - x2) <= hegy && abs(y - y2) <= hegy) << 1;
  28.                     lehet |= (terkep[y2 * (szelesseg + 1) + x2] == '~' && abs(x - x2) <= viz && abs(y - y2) <= viz) << 2;
  29.                     lehet |= (terkep[y2 * (szelesseg + 1) + x2] == 'X' && abs(x - x2) <= vihar && abs(y - y2) <= vihar) << 3;
  30.                 }
  31.             }
  32.  
  33.             lehet ^= 8;
  34.  
  35.             if (lehet == 15) {
  36.                 alkalmas++;
  37.             }
  38. // DEBUG eleje
  39.             printf("%c%s%s%s%s%s", terkep[y * (szelesseg + 1) + x], lehet & 1 ? "." : " ", lehet & 2 ? "." : " ", lehet & 4 ? "." : " ", lehet & 8 ? "." : " ", x == szelesseg - 1 ? "\n" : " ");
  40. // DEBUG vége */
  41.         }
  42.     }
  43.  
  44.     free(terkep);
  45.  
  46.     txt = fopen("ki.txt", "w");
  47.     fprintf(txt, "%d\n", alkalmas);
  48.     fclose(txt);
  49.  
  50.     return 0;
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement