Cod sursa(job #2900613)

Utilizator Albert_GAlbert G Albert_G Data 11 mai 2022 15:45:25
Problema Tribute Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
#include <algorithm>
#include <vector>

std::ifstream in("tribute.in");
std::ofstream out("tribute.out");

int findDistance(std::vector<int> &d, int n, int l){
    int st = 0, dr = n-1;  // vom avea distanta de la x1 si xn la latura L ca fiind (xn - x1 - l) pentru fiecare pereche de x
    int distTot = 0, newDist;
    while((newDist = d[dr--] - d[st++] - l) > 0)
        distTot += newDist;
    return distTot;
}

int main(){
    int n, dx, dy;
    std::vector<int> pointX, pointY;
    in >> n >> dx >> dy;
    for(int i=0; i<n; ++i){
        int x, y;
        in >> x >> y;
        pointX.push_back(x);
        pointY.push_back(y);
    }
    in.close();
    std::sort(pointX.begin(), pointX.end());
    std::sort(pointY.begin(), pointY.end());
    out << findDistance(pointX, n, dx) + findDistance(pointY, n, dy);
    out.close();
    return 0;
}