2011. 9. 3. 14:48

//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
Posted by I_co