/// Raihan Ruhin /// CSE, Jahangirnagar University. /// Dhaka-Bangladesh. /// id: raihanruhin (topcoder / codeforces / codechef / hackerrank / uva / uvalive / spoj), 3235 (lightoj) /// mail: raihanruhin@ (yahoo / gmail / facebook) /// blog: ruhinraihan.blogspot.com #include<bits/stdc++.h> using namespace std; #define SET(a) memset(a,-1,sizeof(a)) #define CLR(a) memset(a,0,sizeof(a)) #define PI acos(-1.0) #define MOD 1000000007 #define MX 100010 string tmp[12]; int lightSwitch(int n) { int cnt=0; for(int i=0;i<10;i++) //bit check for first row if(n & (1<<i)) { cnt++; //top-left for(int j=max(i-1, 0);j<=min(i+1, 9);j++) { if(tmp[0][j]=='#') tmp[0][j]='O'; else tmp[0][j]='#'; } //2nd row if(tmp[1][i]=='#') tmp[1][i]='O'; else tmp[1][i]='#'; } //cout<<n<<" "<<cnt<<endl; for(int i=1;i<10;i++) { for(int j=0;j<10;j++) if(tmp[i-1][j]=='O') { cnt++; tmp[i-1][j]=='#'; //above for(int k=max(j-1, 0);k<=min(j+1, 9);k++) { if(tmp[i][k]=='#') tmp[i][k]='O'; else tmp[i][k]='#'; } if(i<9) { if(tmp[i+1][j]=='#') tmp[i+1][j]='O'; else tmp[i+1][j]='#'; } } } bool chk=true; for(int i=0;i<10;i++) if(tmp[9][i]=='O') chk=false; if(!chk) cnt=1e9; return cnt; } int main() { ios_base::sync_with_stdio(0);cin.tie(0); int n, tc, kk=1; string s, ss[12]; while(cin>>s && s!="end") { for(int i=0;i<10;i++) cin>>ss[i]; int mn=1e9; for(int i=0;i<1024;i++) { for(int j=0;j<10;j++) tmp[j]=ss[j]; int mnn=lightSwitch(i); //if(mnn==0) cout<<i<<endl; mn=min(mn, mnn); } if(mn>100) mn=-1; cout<<s<<" "<<mn<<"\n"; } return 0; }
Tuesday, 28 April 2015
UVA 10309 Turn the Lights Off
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment