| ||||||||||
| 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 | |||||||||
在本机上各种情况都试了,为甚提交就是wrong answer?#include <stdio.h>
#include <vector>
using namespace std;
int main(int argc, char const *argv[]){
vector< vector<int> > primal(4, vector<int>(4));
vector< vector<int> > press(5, vector<int>(6));
int pressNum;
int mmin = 20;
char bw;
bool succ;
for (int i = 0; i < 4; i++){
for (int j = 0; j<4; j++)
primal[i][j]=((bw=getchar())=='b'?1:0);
getchar();
}
for (int i = 0; i<5; i++)
for (int j = 0; j<6; j++)
press[i][j] = 0;
for (int i = 0; i<16; i++){
int tmp = i;
pressNum = 0;
//第一行
for (int j = 1; j<5; j++){
pressNum += press[1][j] = tmp & 1;
tmp = tmp >> 1;
}
for (int j = 2; j<5; j++){
for (int k = 1; k<5; k++){
if (0 == (primal[j - 2][k - 1] + press[j - 1][k - 1] + press[j - 1][k] + press[j - 1][k + 1] + press[j - 2][k]) % 2){
press[j][k] = 1;
pressNum++;
}
else{
press[j][k] = 0;
}
}
}
succ=true;
for(int j=0; j<4; j++){
if (0==(primal[3][j] + press[4][j+1] + press[4][j] + press[4][j+2] + press[3][j+1])%2){
succ=false;
}
}
if(succ){
mmin=min(mmin,pressNum);
}
}
if(mmin>16)
printf("Impossible");
else
printf("%d\n", mmin);
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator