Pagini recente » Cod sursa (job #1442295) | Cod sursa (job #2808852) | Cod sursa (job #1056604) | Cod sursa (job #2751996) | Cod sursa (job #2900613)
#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;
}