Cod sursa(job #3353723)

Utilizator GabrielaBellaMircea Gabriela GabrielaBella Data 10 mai 2026 17:00:14
Problema Tribute Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.44 kb
#include <iostream>
#include <fstream>
#include <cstdio>
#include <climits>
#include <algorithm>

using namespace std;

int vl[50005];
int vlc[50005];
int vc[50005];
int vcc[50005];

int main()
{
    freopen("tribute.in", "r", stdin);
    freopen("tribute.out", "w", stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n, dx, dy;
    cin >> n >> dx >> dy;
    for (int i=1; i<=n; i++) {
        cin >> vl[i] >> vc[i];
        vlc[i]=vl[i];
        vcc[i]=vc[i];
    }

    int ok;
    if (n%2==0) ok=n/2;
    else if (n%2==1) ok=(n+1)/2;
    nth_element(vlc+1, vlc+ok, vlc+n+1);
    nth_element(vcc+1, vcc+ok, vcc+n+1);

    //cout << vl[ok] << " " << vc[ok];

    long long suma=0;
    int vlcc=vlc[ok];
    int vccc=vcc[ok];

    for (int i=1; i<=n; i++) {
        long long diff=LLONG_MAX, ver;
        int dif1, dif2;

        dif1=abs(vlcc-vl[i]);
        dif2=abs(vccc-vc[i]);
        if (dif1+dif2<diff) diff=dif1+dif2;

        dif1=abs(vlcc-dx-vl[i]);
        dif2=abs(vccc-vc[i]);
        if (dif1+dif2<diff) diff=dif1+dif2;

        dif1=abs(vlcc-dx-vl[i]);
        dif2=abs(vccc+dy-vc[i]);
        if (dif1+dif2<diff) diff=dif1+dif2;

        dif1=abs(vlcc-vl[i]);
        dif2=abs(vccc+dy-vc[i]);
        if (dif1+dif2<diff) diff=dif1+dif2;

        //cout << diff << " -> " << vl[i] << " " << vc[i] << endl;

        suma+=diff;
    }
    cout << suma;
    return 0;
}