fork download
  1. #include <bits/stdc++.h>
  2. using namespace std ;
  3.  
  4. int main()
  5. {
  6. int n , k ;
  7. scanf("%d %d" , &n , &k) ;
  8. int arr[n + 1] ;
  9. for(int i = 0 ; i <= n ; i++) arr[i] = 1 ;
  10. int moves = 0 , ini = k ;
  11. if(k == 1 || k == n) printf("%d" , 3*n) ;
  12. else
  13. {
  14. for(int i = 0 ; i < n ; i++)
  15. {
  16. if((k == 1 || k == n) && i != (n - 1))
  17. {
  18. moves = moves + abs(k - ini) + 1 + 1 + arr[k] ;
  19. arr[k] = 0 ;
  20. if(k == 1) k = ini + 1 ;
  21. else k = ini - 1 ;
  22. continue ;
  23. }
  24. if(i == (n - 1)) moves = moves + arr[k] + 1 ;
  25. else moves = moves + arr[k] + 2 ;
  26. if(arr[k - 1] != 0 && arr[k + 1] != 0)
  27. {
  28. if(arr[k - 1] <= arr[k + 1]) arr[k - 1] += arr[k] ;
  29. else arr[k + 1] += arr[k] ;
  30. }
  31. arr[k] = 0 ;
  32. if(k <= n/2) k-- ;
  33. else k++ ;
  34. }
  35. printf("%d" , moves) ;
  36. }
  37. return 0 ;
  38. }
Success #stdin #stdout 0s 15232KB
stdin
6 4
stdout
20