//poj 1166
//2011 07 04
//daun
#include <iostream>
using namespace std;
void swap(int *a,int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
int main()
{
int arr[3][3]={0};
int i = 0;
int end = 0;
int result[27] ={0};
int count = 0;
for(int a = 0 ; a< 3 ; a++)
for(int b = 0 ; b< 3; b++)
cin>>arr[a][b];
while(end!=9)
{
end = 0;
if(arr[0][1]* arr[1][0] *arr[1][1]* arr[1][2] * arr[2][1] )
{
arr[0][1]++;
arr[1][0]++;
arr[1][1]++;
arr[1][2]++;
arr[2][1]++;
result[count] = 5;
}
else
{
if(!arr[i][1])
{
if(!arr[1][i])
i++;
}
else if(!arr[i][0])
{
arr[i][1]++;
arr[i][2]++;
arr[i+1][1]++;
arr[i+1][2]++;
if(i == 0)
result[count] = 3;
if(i == 1)
result[count] = 9;
}
else if(!arr[i][2])
{
arr[i][0]++;
arr[i][1]++;
arr[i+1][0]++;
arr[i+1][1]++;
if(i == 0)
result[count] = 1;
if(i == 1)
result[count] = 7;
}
if(arr[i][0]*arr[i][1]* arr[i][2])
{
arr[i][0]++;
arr[i][1]++;
arr[i][2]++;
if(i == 0)
result[count] = 2;
else
result[count] = 8;
}
if(arr[0][i]* arr[1][i] * arr[2][i] )
{
arr[0][i]++;
arr[1][i]++;
arr[2][i]++;
if(i == 0)
result[count] = 4;
else
result[count] = 6;
}
}
for(int a = 0; a < 3 ; a++)
for(int b= 0 ; b< 3; b++)
{
if(arr[a][b] >=4)
arr[a][b] = arr[a][b]%4;
if(arr[a][b] == 0)
end++;
}
if(result[count])
count++;
}
for(int a = 1; a<count; a++)
for(int b = a; b<count; b++)
if(result[b]<result[b-1])
{
int temp = result[b-1];
result[b-1] = result[b];
result[b]= temp;
}
for(int a = 0 ; a < count; a++)
cout << result[a] << "\t";
return 0;
}
'Code > Algorism' 카테고리의 다른 글
[ALGORISM]poj 1218 (0) | 2011.09.03 |
---|---|
[ALGORISM]poj 1298 (0) | 2011.09.03 |
[ALGORISM]poj 2853 (0) | 2011.09.03 |
[ALGORISM]poj 1077 (0) | 2011.09.03 |
[ALGORISM]poj 1163 (0) | 2011.09.03 |