tungggg

drawing book hackerrank

Mar 12th, 2022
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.81 KB | None | 0 0
  1. int pageCount(int n, int p) {
  2.     if ( n%2==1 ){
  3.         if (p==1 || p== n || p== n-1) return 0;
  4.         else {
  5.             int currentPage = 2 ;
  6.         int countStart = 1 ;
  7.         // from start
  8.         while ( currentPage !=   p ){
  9.             int right = currentPage ;
  10.             int left = currentPage + 1;
  11.             if (right==p  || left == p ){
  12.                 break;
  13.             }
  14.             countStart ++ ;
  15.              currentPage  += 2 ;
  16.         }  
  17.        
  18.        
  19.         // from end
  20.         int endPage = n-2 ;
  21.         int count = 1 ;
  22.         while (endPage != p ){
  23.             int left = endPage ;
  24.             int right = endPage - 1 ;
  25.             if (left == p || right == p){
  26.                 break;
  27.             }
  28.             count ++ ;
  29.             endPage -= 2 ;
  30.         }
  31.         return min(count , countStart);
  32.         }
  33.     }
  34.     else if ( n%2== 0 ){
  35.         if ( p==1) return 0;
  36.         else if ( p== n ) return 0;
  37.         else if ( p== n-1 || p== n-2 ) return 1;
  38.         else {
  39.             int currentPage = 2 ;
  40.         int countStart = 1 ;
  41.         // from start
  42.         while ( currentPage !=   p ){
  43.             int right = currentPage ;
  44.             int left = currentPage + 1;
  45.             if (right==p  || left == p ){
  46.                 break;
  47.             }
  48.             countStart ++ ;
  49.              currentPage  += 2 ;
  50.         }  
  51.        
  52.        
  53.         // from end
  54.         int endPage = n-2 ;
  55.         int count = 1 ;
  56.         while (endPage != p ){
  57.             int left = endPage ;
  58.             int right = endPage - 1 ;
  59.             if (left == p || right == p){
  60.                 break;
  61.             }
  62.             count ++ ;
  63.             endPage -= 2 ;
  64.         }
  65.         return min(count , countStart);
  66.         }
  67.     }
  68.    
  69.     return 1 ;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment