陣列要開大一點,不然很容易WA
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int img[35][35]; //(0~31 * 0~31)
char input[2000];
int flag;
int sol(int a, int b, int w){
char c = input[flag];
flag++;
if(c=='p'){
sol(a+w/2,b,w/2);
sol(a,b,w/2);
sol(a,b+w/2,w/2);
sol(a+w/2,b+w/2,w/2);
}
if(c=='f'){
for(int i=a; i<a+w; i++){
for(int j=b; j<b+w; j++){
img[i][j]=1;
}
}
}
}
int main(){
freopen("input.txt","r",stdin);
int n;
scanf("%d",&n);
getchar();
while(n--){
int count=0;
memset(img,0,sizeof(img));
//getchar();
memset(input,0,sizeof(input));
fgets(input,sizeof(input),stdin);
flag=0;
sol(0,0,32);
memset(input,0,sizeof(input));
fgets(input,sizeof(input),stdin);
flag=0;
sol(0,0,32);
for(int i=0;i<32;i++){
for(int j=0;j<32;j++){
if(img[i][j]==1)count++;
}
}
printf("There are %d black pixels.\n",count);
}
return 0;
}
沒有留言:
發佈留言