Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
谁的代码比我长?#include<iostream> using namespace std; char s[4][4]; int a[4][4]; int b[4][4]; void flip(int i,int j) { if(i<3) b[i+1][j]^=1; if(i>0) b[i-1][j]^=1; if(j<3) b[i][j+1]^=1; if(j>0) b[i][j-1]^=1; b[i][j]^=1; } int main() { int i,j,k,l,m,n; for(i=0;i<4;i++) { for(j=0;j<4;j++) { scanf("%c",&s[i][j]); if(s[i][j]=='\n') j--; if(s[i][j]=='b') a[i][j]=1; } } int count=0,max=17; memcpy(b,a,sizeof(a)); /*for(i=0;i<4;i++) { for(j=0;j<4;j++) printf("%d",a[i][j]); printf("\n"); for(j=0;j<4;j++) printf("%d",b[i][j]); printf("\n"); }*/ int indix=1; for(i=1;i<4;i++) { for(j=0;j<4;j++) if(b[i-1][j]==indix) { flip(i,j); count++; } } if(b[3][0]+b[3][1]+b[3][2]+b[3][3]==0) max=count; memcpy(b,a,sizeof(a)); for(k=0;k<4;k++) { count=1; flip(0,k); for(i=1;i<4;i++) { for(j=0;j<4;j++) if(b[i-1][j]==indix) { flip(i,j); count++; } } if(b[3][0]+b[3][1]+b[3][2]+b[3][3]==0) if(max>count) max=count; memcpy(b,a,sizeof(a)); } for(k=0;k<3;k++) { for(l=k+1;l<4;l++) { count=2; flip(0,k); flip(0,l); for(i=1;i<4;i++) { for(j=0;j<4;j++) if(b[i-1][j]==indix) { flip(i,j); count++; } } if(b[3][0]+b[3][1]+b[3][2]+b[3][3]==0) if(max>count) max=count; memcpy(b,a,sizeof(a)); } } for(k=0;k<4;k++) { count=3; for(l=0;l<4;l++) if(l!=k) flip(0,l); for(i=1;i<4;i++) { for(j=0;j<4;j++) if(b[i-1][j]==indix) { flip(i,j); count++; } } if(b[3][0]+b[3][1]+b[3][2]+b[3][3]==0) if(max>count) max=count; memcpy(b,a,sizeof(a)); } count=4; for(k=0;k<4;k++) flip(0,k); for(i=1;i<4;i++) { for(j=0;j<4;j++) if(b[i-1][j]==indix) { flip(i,j); count++; } } if(b[3][0]+b[3][1]+b[3][2]+b[3][3]==0) if(max>count) max=count; memcpy(b,a,sizeof(a)); indix=0; count=0; //if(max==17) //{ for(i=1;i<4;i++) { for(j=0;j<4;j++) if(b[i-1][j]==indix) { flip(i,j); count++; } } if(b[3][0]+b[3][1]+b[3][2]+b[3][3]==4) if(max>count) max=count; memcpy(b,a,sizeof(a)); for(k=0;k<4;k++) { count=1; flip(0,k); for(i=1;i<4;i++) { for(j=0;j<4;j++) if(b[i-1][j]==indix) { flip(i,j); count++; } } if(b[3][0]+b[3][1]+b[3][2]+b[3][3]==4) if(max>count) max=count; memcpy(b,a,sizeof(a)); } for(k=0;k<3;k++) { for(l=k+1;l<4;l++) { count=2; flip(0,k); flip(0,l); for(i=1;i<4;i++) { for(j=0;j<4;j++) if(b[i-1][j]==indix) { flip(i,j); count++; } } if(b[3][0]+b[3][1]+b[3][2]+b[3][3]==4) if(max>count) max=count; memcpy(b,a,sizeof(a)); } } for(k=0;k<4;k++) { count=3; for(l=0;l<4;l++) if(l!=k) flip(0,l); for(i=1;i<4;i++) { for(j=0;j<4;j++) if(b[i-1][j]==indix) { flip(i,j); count++; } } if(b[3][0]+b[3][1]+b[3][2]+b[3][3]==4) if(max>count) max=count; memcpy(b,a,sizeof(a)); } count=4; for(k=0;k<4;k++) flip(0,k); for(i=1;i<4;i++) { for(j=0;j<4;j++) if(b[i-1][j]==indix) { flip(i,j); count++; } } if(b[3][0]+b[3][1]+b[3][2]+b[3][3]==4) if(max>count) max=count; //} if(max==17) printf("Impossible\n"); else printf("%d\n",max); return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator