fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define int long long
  4. const int N=1e6+10;
  5. int n,k,arr[N],brr[N],ans;
  6. bool check(int x){
  7. int cnt=0,p=0;
  8. for(int i=1;i<=n;i++){
  9. cnt+=max(p,(arr[i]*brr[i]-x+brr[i]-1)/brr[i]);
  10. }
  11. return cnt<=k;
  12. }
  13. bool cmp(int x,int y){
  14. return x>y;
  15. }
  16. signed main(){
  17. cin>>n>>k;
  18. for(int i=1;i<=n;i++){
  19. cin>>arr[i];
  20. }
  21. for(int i=1;i<=n;i++){
  22. cin>>brr[i];
  23. }
  24. sort(arr+1,arr+1+n);
  25. sort(brr+1,brr+1+n,cmp);
  26. int l=0,r=N*N;
  27. while(l<=r){
  28. int mid=(r+l)>>1;
  29. if(check(mid)){
  30. r=mid-1;
  31. ans=mid;
  32. }else{
  33. l=mid+1;
  34. }
  35. }
  36. cout<<ans;
  37. return 0;
  38. }
Success #stdin #stdout 0s 5532KB
stdin
11 14
3 1 4 1 5 9 2 6 5 3 5
8 9 7 9 3 2 3 8 4 6 2
stdout
12