Pabon_SEC

The Sultan's Successors

Apr 30th, 2016
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int board[10][10];
  6.  
  7. int queen[20],mx;
  8.  
  9. int column[20],diagonal1[40],diagonal2[40];
  10.  
  11. void Eight_Queen(int _at,int n)
  12. {
  13.     int i,sum;
  14.  
  15.     if(_at==n+1)
  16.     {
  17.         sum = 0;
  18.  
  19.         for(i=1; i<=n; i++)
  20.         {
  21.             sum+=board[i][queen[i]];
  22.         }
  23.  
  24.         mx = max(mx,sum);
  25.  
  26.         return ;
  27.     }
  28.  
  29.  
  30.     for(i=1; i<=n; i++)
  31.     {
  32.         if(column[i] || diagonal1[i+_at] || diagonal2[n+i-_at])
  33.             continue;
  34.  
  35.         queen[_at] = i;
  36.  
  37.         column[i] = diagonal1[i+_at] = diagonal2[n+i-_at] = 1;
  38.  
  39.         Eight_Queen(_at+1,n);
  40.  
  41.         column[i] = diagonal1[i+_at] = diagonal2[n+i-_at] = 0;
  42.     }
  43. }
  44.  
  45. int main()
  46. {
  47.     int test,i,j;
  48.  
  49.     scanf("%d",&test);
  50.  
  51.     while(test--)
  52.     {
  53.         for(i=1;i<=8;i++)
  54.         {
  55.             for(j=1;j<=8;j++)
  56.             {
  57.                 scanf("%d",&board[i][j]);
  58.             }
  59.         }
  60.  
  61.         mx = -1;
  62.  
  63.         Eight_Queen(1,8);
  64.  
  65.         printf("%5d\n",mx);
  66.     }
  67.  
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment