Advertisement
Josif_tepe

Untitled

Jul 15th, 2022
852
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3.  
  4. using namespace std;
  5.  
  6. int n,m,d;
  7. long long x[100005],c[100005];
  8.  
  9. bool f(long long koj, long long kolku)
  10. {
  11.     for(int i = 0; i < koj; i++) {
  12.         kolku -= max(0LL, c[i] - x[n - koj + i]);
  13.        
  14.         if(kolku < 0) {
  15.             return 0;
  16.         }
  17.     }
  18.     return 1;
  19. }
  20.  
  21. int main()
  22. {
  23.     cin>>n>>m>>d;
  24.     for(int i=0;i<n;i++)
  25.     {
  26.         cin>>x[i];
  27.     }
  28.     for(int i=0;i<m;i++)
  29.     {
  30.         cin>>c[i];
  31.     }
  32.     sort(x,x +n);
  33.     sort(c,c +m);
  34.     int l=0;
  35.     int r=min(n, m);
  36.     int mid=(l+r)/2;
  37.     int maxx = 0;
  38.     while(l<=r)
  39.     {
  40.         mid=(l+r)/2;
  41.         bool ok=f(mid, d);
  42.         if(ok)
  43.         {
  44.             maxx = max(maxx, mid);
  45.             l=mid+1;
  46.         }
  47.         if(!ok)
  48.         {
  49.             r=mid-1;
  50.         }
  51.     }
  52.     mid = maxx;
  53.     cout<<mid<<" ";
  54.     long long sum=0;
  55.     for(int i=0;i<mid;i++)
  56.     {
  57.         sum+=c[i];
  58.     }
  59.     if(sum-d>=0)
  60.     {
  61.         cout<<sum - d;
  62.     }
  63.     else
  64.     {
  65.         cout<<0;
  66.     }
  67.     return 0;
  68. }
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement