SuitNdtie

Rook Task138

Mar 27th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.84 KB | None | 0 0
  1. #include<stdio.h>
  2. int n;
  3. int table[11][11];
  4.  
  5. int ColumOfRow[11];
  6. bool pickedColum[11];
  7. int ANScolum[11];
  8. int ans = -2e9;
  9. int recur(int index){
  10.     if(index <= n){
  11.         for(int i = 1;i<=n;i++){
  12.             if(!pickedColum[i]){
  13.                 pickedColum[i] = true;
  14.                 ColumOfRow[index] = i;
  15.                 recur(index+1);
  16.                 pickedColum[i] = false;
  17.             }
  18.            
  19.         }
  20.     }
  21.     else{
  22.     /*  for(int i=1;i<=n;i++){
  23.             printf("%d ",ColumOfRow[i]);
  24.         }printf("\n");*/
  25.        
  26.         int tempsum = 0;
  27.         for(int i=1;i<=n;i++){
  28.             tempsum += table[i][ColumOfRow[i]];
  29.         }
  30.         if(tempsum > ans){
  31.             ans = tempsum;
  32.             for(int i=1;i<=n;i++){
  33.                 ANScolum[i] = ColumOfRow[i];
  34.             }
  35.         }
  36.     }
  37. }
  38.  
  39. int main()
  40. {
  41.     scanf("%d",&n);
  42.     for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)scanf("%d",&table[i][j]);
  43.    
  44.     recur(1);
  45.     printf("%d\n",ans);
  46.     for(int i=1;i<=n;i++){
  47.         printf("%d %d\n",i,ANScolum[i]);
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment