Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int main()
- {
- FILE *txt;
- int hegy, viz, vihar, szelesseg, magassag, alkalmas;
- char *terkep;
- txt = fopen("be.txt", "r");
- fscanf(txt, "%d %d %d\n", &hegy, &viz, &vihar);
- fscanf(txt, "%d %d\n", &magassag, &szelesseg);
- terkep = malloc((szelesseg + 1) * magassag * sizeof(char));
- fread(terkep, sizeof(char), (szelesseg + 1) * magassag, txt);
- fclose(txt);
- for (int y = 0; y < magassag; y++) {
- for (int x = 0; x < szelesseg; x++) {
- char lehet = terkep[y * (szelesseg + 1) + x] == '0' || terkep[y * (szelesseg + 1) + x] == '~';
- for (int y2 = 0; y2 < magassag; y2++) {
- for (int x2 = 0; x2 < szelesseg; x2++) {
- lehet |= (terkep[y2 * (szelesseg + 1) + x2] == 'A' && abs(x - x2) <= hegy && abs(y - y2) <= hegy) << 1;
- lehet |= (terkep[y2 * (szelesseg + 1) + x2] == '~' && abs(x - x2) <= viz && abs(y - y2) <= viz) << 2;
- lehet |= (terkep[y2 * (szelesseg + 1) + x2] == 'X' && abs(x - x2) <= vihar && abs(y - y2) <= vihar) << 3;
- }
- }
- lehet ^= 8;
- if (lehet == 15) {
- alkalmas++;
- }
- // DEBUG eleje
- printf("%c%s%s%s%s%s", terkep[y * (szelesseg + 1) + x], lehet & 1 ? "." : " ", lehet & 2 ? "." : " ", lehet & 4 ? "." : " ", lehet & 8 ? "." : " ", x == szelesseg - 1 ? "\n" : " ");
- // DEBUG vége */
- }
- }
- free(terkep);
- txt = fopen("ki.txt", "w");
- fprintf(txt, "%d\n", alkalmas);
- fclose(txt);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement