Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long int ll;
- struct elem{
- ll high;
- ll pos;
- bool operator < (const elem &rhs)const
- {
- return pos < rhs.pos;
- }
- };
- int main()
- {
- //freopen("input.txt","r",stdin);
- int n;
- scanf("%d",&n);
- elem arr[n];
- ll minhigh = 1e9+10;
- ll sumback = 0;
- ll sumposfront = 0;
- ll sumhighfront = 0;
- for(int i = 0 ; i < n ; i ++){
- scanf("%lld",&arr[i].high);
- minhigh = min(minhigh,arr[i].high);
- }
- for(int i = 0 ; i < n ; i ++){
- scanf("%lld",&arr[i].pos);
- sumback += arr[i].pos;
- }
- sort(arr,arr+n);
- ll mina = 1e18,mini;
- for(int i = 0 ; i < n ; i++){
- ll p = arr[i].pos;
- sumback -= p;
- if(p > minhigh)break;
- ll cost = (sumback - (n-i-1)*p) + (sumposfront+sumhighfront-(i*p));
- if(cost < mina){
- mina = cost;
- mini = p;
- }
- sumposfront += arr[i].pos;
- sumhighfront += arr[i].high;
- }
- printf("%lld %lld",mini,mina);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement