zoj 2193 Window Pains

;string cover[4][4];int main(){int i,j,k,mp[4][4],use[10],sum,flag,cnt[10],g[10][10];char s[100];for(i=0;i<4;i++)for(j=0;j<4;j++){cover[i][j].erase();}for(k=1;k<=9;k++){i=(k-1)/3;j=(k-1)%3;cover[i][j]+=char(k+’0′);cover[i][j+1]+=char(k+’0′);cover[i+1][j]+=char(k+’0′);cover[i+1][j+1]+=char(k+’0′);}while(~scanf(“%s”,s)){if(strcmp(s,”ENDOFINPUT”)==0) break;sum=0;memset(cnt,0,sizeof(cnt));memset(g,0,sizeof(g));memset(use,0,sizeof(use));for(i=0;i<4;i++)for(j=0;j<4;j++){scanf(“%d”,&mp[i][j]);if(use[mp[i][j]]==0){sum++;use[mp[i][j]]=1;}}for(i=0;i<4;i++)for(j=0;j<4;j++)for(k=0;k<cover[i][j].size();k++){if(!g[mp[i][j]][cover[i][j][k]-‘0’]&&(mp[i][j]!=cover[i][j][k]-‘0’)){g[mp[i][j]][cover[i][j][k]-‘0’]=1;cnt[cover[i][j][k]-‘0’]++;}}for(flag=1,k=0;k<sum;k++){i=1;while(!use[i]||(i<=9&&cnt[i]>0)) i++;if(i>9) {flag=0;break;}use[i]=0;for(j=1;j<=9;j++){if(use[j]&&g[i][j]) cnt[j]–;}}if(flag) printf(“THESE WINDOWS ARE CLEAN\n”);else printf(“THESE WINDOWS ARE BROKEN\n”);scanf(“%s”,s);}return 0;}

,人生就是一场旅行,不在乎目的地,

zoj 2193 Window Pains

相关文章:

你感兴趣的文章:

标签云: