shamiul93

Untitled

Dec 2nd, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.40 KB | None | 0 0
  1. public int getInversionNo() {
  2.  
  3.         int inversionNo = 0;
  4.  
  5.         for (int i = 0; i < rowNum; i++) {
  6.             for (int j = 0; j < colmNum; j++) {
  7.  
  8.                 for (int k = j + 1; k < colmNum; k++) {
  9.                     if (Board[i][k] != 0 && Board[i][j] != 0 && Board[i][k] < Board[i][j]) {
  10.  
  11.                         inversionNo++;
  12.                     }
  13.                 }
  14.  
  15.                 for (int k = i + 1; k < rowNum; k++) {
  16.                     for (int l = 0; l < colmNum; l++) {
  17.                         if (Board[k][l] != 0 && Board[i][j] != 0 && Board[k][l] < Board[i][j]) {
  18.                              inversionNo++;
  19.                         }
  20.                     }
  21.                 }
  22.  
  23.             }
  24.         }
  25.         return inversionNo;
  26.     }
  27.  
  28.     public boolean isSolvable() {
  29.  
  30.         if (rowNum % 2 == 0) // even row
  31.         {
  32.             int tem;
  33.             tem = getInversionNo() + getblankPosition().row;
  34.  
  35.             if (tem % 2 != 0) // even board has odd getInversionNo() + getblankPosition().row = true
  36.             {
  37.                 return true;
  38.             } else {
  39.                 return false;
  40.             }
  41.         } else // odd row
  42.         {
  43.             if (getInversionNo() % 2 != 0) // odd board has odd no of inversion = false
  44.             {
  45.                 return false;
  46.             } else {
  47.                 return true;
  48.             }
  49.         }
  50.     }
Advertisement
Add Comment
Please, Sign In to add comment