Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define MAX 100005
- using namespace std;
- int n,k;
- int a[MAX];
- long long sums[MAX];
- bool p(int x,int i)
- {
- return (a[i]*x - (sums[i] - sums[i-x])) <=k;
- }
- int main()
- {
- cin >> n >>k;
- for(int i = 0 ; i < n ; i++)cin >> a[i];
- sort(a,a+n);
- sums[0] = a[0];
- for(int i = 1 ; i < n ; i++)sums[i]= sums[i-1]+a[i];
- int left,right,mi,ml = 0;
- for(int i = 0 ; i < n ; i++)
- {
- left = 1,right = i+1;
- while(left < right)
- {
- int mid = left + (right - left +1)/2;
- if(p(mid,i))
- {
- left = mid;
- }
- else
- {
- right = mid-1;
- }
- }
- if(left>ml)
- {
- ml = left;
- mi = a[i];
- }
- }
- cout << ml << ' ' << mi;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement