Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- long calc(int x,int *arr,int n,int k)
- {
- long ans=0;
- for(int i=0;i<n;i++)
- {
- ans+=abs(pow((x-*(arr+i)),k));
- }
- return ans;
- }
- int main()
- {
- int n,k;
- cin>>n>>k;
- int l=INT_MAX;
- int r=INT_MIN;
- int arr[n];
- for(int i=0;i<n;i++)
- {
- cin>>arr[i];
- r=max(r,arr[i]);
- l=min(l,arr[i]);
- }
- int ans=0;
- while(l<r)
- {
- int mid=l+(r-l)/2;
- long peak=calc(mid,arr,n,k);
- long dr=calc(mid+1,arr,n,k);
- if(peak<dr)
- {
- ans=mid;
- r=mid;
- }
- else
- {
- l=mid+1;
- }
- }
- cout<<ans<<endl;
- }
Add Comment
Please, Sign In to add comment