Ahmed_Negm

Untitled

Apr 6th, 2022
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.56 KB | None | 0 0
  1. #include<iostream>
  2. #include<cmath>
  3. #include<iomanip>
  4. #include<algorithm>
  5. #include<cstdlib>
  6. #include<cstring>
  7. #include<vector>
  8. #include<utility>
  9.  
  10. #define ll long long
  11. #define sz(x) int(x.size())
  12. #define all(x) x.begin(),x.end()
  13. using namespace std;
  14.  
  15. void Fast_IO(){
  16.     ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  17.     #ifndef ONLINE_JUDGE
  18.         freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
  19.     #endif
  20. }
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27. void solve(){
  28.  
  29. ll n,k,pos; cin>>n>>k;
  30. ll arr[n];
  31. ll path =0;
  32. for(int i=0; i<n; i++){
  33.     cin>>arr[i];
  34.     if(i>0){
  35.         if(arr[i]>=0 && arr[i-1]<0) pos =i;
  36.     }
  37. }
  38. if(arr[0]>=0){
  39.     if(arr[0]==0) k-=1;
  40.     for(int i=0; i<n; i++){
  41.         path=abs(arr[i]);
  42.         k--;
  43.         if(k==0) break;
  44.     }
  45. }else if(arr[n-1]<=0){
  46.     if(arr[n-1]==0) k-=1;
  47.     for(int i=n-1; i>0; i--){
  48.         path = abs(arr[i]);
  49.         k--;
  50.         if(k==0) break;
  51.     }
  52. }else{
  53.     int left=pos-1, right = pos;
  54.     if(arr[pos]==0){
  55.         k--;
  56.         right = pos+1;
  57.     }
  58.     ll right_path=0,left_path=0;
  59. for(; k>0;){
  60.     if(arr[right]<=abs(arr[left])){
  61.         k--;
  62.         right_path = arr[right];
  63.         right++;
  64.     }else if(arr[right]>abs(arr[left])){
  65.         k--;
  66.         left_path = abs(arr[left]);
  67.         left--;
  68.     }
  69. }
  70. // cout<<left_path<<' '<<right_path<<' '<<pos<<' ';
  71. path = 2*min(left_path,right_path)+max(right_path,left_path);
  72. }
  73.  
  74. cout<<path;
  75.  
  76. }
  77.  
  78. int main(){
  79.     Fast_IO();
  80. int t =1;
  81. //cin>>t;
  82. while(t--){
  83. solve();
  84. }
  85. return 0;
  86. }  
Advertisement
Add Comment
Please, Sign In to add comment