delete pics to save space
This commit is contained in:
47
p.CH0201.cpp
Normal file
47
p.CH0201.cpp
Normal file
@ -0,0 +1,47 @@
|
||||
//http://contest-hunter.org:83/contest/0x00%E3%80%8C%E5%9F%BA%E6%9C%AC%E7%AE%97%E6%B3%95%E3%80%8D%E4%BE%8B%E9%A2%98/0201%20%E8%B4%B9%E8%A7%A3%E7%9A%84%E5%BC%80%E5%85%B3
|
||||
#include<cstdio>
|
||||
#include<algorithm>
|
||||
#include<cstring>
|
||||
using namespace std;
|
||||
int n;
|
||||
char mp[10][10],bk[10][10];
|
||||
#define flip(x) (x)=('0'+1-((x)-'0'))
|
||||
inline void cli(int r,int c)
|
||||
{
|
||||
mp[r][c]^=1;
|
||||
mp[r-1][c]^=1;
|
||||
mp[r+1][c]^=1;
|
||||
mp[r][c-1]^=1;
|
||||
mp[r][c+1]^=1;
|
||||
}
|
||||
inline int cal(int st)
|
||||
{
|
||||
memcpy(mp,bk,sizeof(mp));
|
||||
int cnt=0;
|
||||
for(int i=1;i<=5;i++) if((st>>i)&1) { cli(1,i); cnt++; }
|
||||
for(int i=2;i<=5;i++) for(int j=1;j<=5;j++) if(!mp[i-1][j]) { cli(i,j); cnt++; }
|
||||
for(int i=1;i<=5;i++) for(int j=1;j<=5;j++) if(!mp[i][j]) return 7;
|
||||
return cnt;
|
||||
}
|
||||
int main()
|
||||
{
|
||||
#ifdef local
|
||||
freopen("pro.in","r",stdin);
|
||||
#endif
|
||||
scanf("%d",&n);
|
||||
while(n-->0)
|
||||
{
|
||||
for(int i=1;i<=5;i++)
|
||||
{
|
||||
scanf("%s",mp[i]+1);
|
||||
for(int j=1;j<=5;j++) mp[i][j]-='0';
|
||||
}
|
||||
memcpy(bk,mp,sizeof(bk));
|
||||
int res=7;
|
||||
for(int i=0;i<(1<<5);i++)
|
||||
res=min(res,cal(i<<1));
|
||||
if(res==7) res=-1;
|
||||
printf("%d\n",res);
|
||||
}
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user