Submission #587457

# Submission time Handle Problem Language Result Execution time Memory
587457 2022-07-01T22:15:53 Z gg123_pe Best Place (NOI17_bestplace) C++14
100 / 100
85 ms 4992 KB
#include <bits/stdc++.h>
using namespace std; 
 
typedef long long ll; 
#define f(i,a,b) for(ll i = a; i < b; i++)
const int N = 1e5 + 5; 
const ll inf = 2e18; 
 
 
ll n, a[N], b[N], A[N], B[N], sa[N], sb[N]; 
 
int main(){
    cin >> n; 
 
    f(i,1,n+1) {
        cin >> a[i] >> b[i]; 
        A[i] = a[i], B[i] = b[i];
    }
 
    ll ans = inf, x, y; 
 
    
    sort(A+1, A+n+1);
    sort(B+1, B+n+1);

    f(i,1,n+1){
        sa[i] = sa[i-1] + A[i];
        sb[i] = sb[i-1] + B[i];
    }

    /*
    f(i,1,n+1){
        f(j,1,n+1){
            ll res = 0; 

            int l = upper_bound(A+1, A+n+2, a[i]) - A;
            int r = upper_bound(B+1, B+n+2, b[j]) - B; 

            l--, r--; 
            
            res += a[i] * l - sa[l] + (sa[n] - sa[l]) - a[i] * (n - l);
            res += b[j] * r - sb[r] + (sb[n] - sb[r]) - b[j] * (n - r);

            if(res < ans){
                x = a[i], y = b[j];
                ans = res; 
            }
        }
    }
    */

    ll le = n/2; 

    f(i,max(1LL,le-5),min(n+1, le+5)){
        f(j,max(1LL,le-5), min(n+1, le+5)){
            ll res = 0; 

            res += A[i] * i - sa[i] + (sa[n] - sa[i]) - A[i] * (n - i);
            res += B[j] * j - sb[j] + (sb[n] - sb[j]) - B[j] * (n - j);

    
            if(res < ans){
                x = A[i], y = B[j];
                ans = res; 
            }
        }
    }
    cout << x << " " << y  << "\n";
    return 0; 
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 56 ms 4992 KB Output is correct
2 Correct 56 ms 4912 KB Output is correct
3 Correct 57 ms 4980 KB Output is correct
4 Correct 55 ms 4916 KB Output is correct
5 Correct 56 ms 4968 KB Output is correct
6 Correct 58 ms 4952 KB Output is correct
7 Correct 56 ms 4860 KB Output is correct
8 Correct 78 ms 4980 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 340 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 1 ms 340 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 84 ms 4932 KB Output is correct
2 Correct 83 ms 4940 KB Output is correct
3 Correct 74 ms 4972 KB Output is correct
4 Correct 63 ms 4948 KB Output is correct
5 Correct 85 ms 4940 KB Output is correct
6 Correct 84 ms 4920 KB Output is correct
7 Correct 83 ms 4884 KB Output is correct
8 Correct 85 ms 4864 KB Output is correct