Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // http://uva.onlinejudge.org/external/2/297.html
- #include <stdio.h>
- #include <stdlib.h>
- char input[10260];
- char bitmap[32][32] ;
- int blacks;
- int rec(int i, int x, int y, int d) {
- int j, k;
- switch (input[i]) {
- case 'p': i = rec(i+1, x+(d/2), y, d/2);
- i = rec(i, x, y, d/2);
- i = rec(i, x, y+(d/2), d/2);
- i = rec(i, x+(d/2), y+(d/2), d/2);
- break;
- case 'f':
- for (j = x; j < x+d; j++)
- for (k = y; k < y+d; k++)
- if (!bitmap[j][k])
- blacks += (bitmap[j][k] = 1);
- i++;
- break;
- default:
- i++;
- break;
- }
- return i;
- }
- int main()
- {
- //freopen("input.txt", "r", stdin);
- int n, i,j ;
- scanf("%d", &n);
- while(n--) {
- for (i=0; i < 32; i++)
- for (j=0; j < 32; j++)
- bitmap[i][j] = 0;
- blacks = 0;
- scanf("%s", input);
- rec(0, 0, 0, 32);
- scanf("%s", input);
- rec(0, 0, 0, 32);
- printf("There are %d black pixels.\n", blacks);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement