Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int pageCount(int n, int p) {
- if ( n%2==1 ){
- if (p==1 || p== n || p== n-1) return 0;
- else {
- int currentPage = 2 ;
- int countStart = 1 ;
- // from start
- while ( currentPage != p ){
- int right = currentPage ;
- int left = currentPage + 1;
- if (right==p || left == p ){
- break;
- }
- countStart ++ ;
- currentPage += 2 ;
- }
- // from end
- int endPage = n-2 ;
- int count = 1 ;
- while (endPage != p ){
- int left = endPage ;
- int right = endPage - 1 ;
- if (left == p || right == p){
- break;
- }
- count ++ ;
- endPage -= 2 ;
- }
- return min(count , countStart);
- }
- }
- else if ( n%2== 0 ){
- if ( p==1) return 0;
- else if ( p== n ) return 0;
- else if ( p== n-1 || p== n-2 ) return 1;
- else {
- int currentPage = 2 ;
- int countStart = 1 ;
- // from start
- while ( currentPage != p ){
- int right = currentPage ;
- int left = currentPage + 1;
- if (right==p || left == p ){
- break;
- }
- countStart ++ ;
- currentPage += 2 ;
- }
- // from end
- int endPage = n-2 ;
- int count = 1 ;
- while (endPage != p ){
- int left = endPage ;
- int right = endPage - 1 ;
- if (left == p || right == p){
- break;
- }
- count ++ ;
- endPage -= 2 ;
- }
- return min(count , countStart);
- }
- }
- return 1 ;
- }
Advertisement
Add Comment
Please, Sign In to add comment