Pagini recente » Cod sursa (job #2389934) | Cod sursa (job #578992) | Cod sursa (job #2543117) | Cod sursa (job #236732) | Cod sursa (job #428074)
Cod sursa(job #428074)
#include<fstream>
#include<algorithm>
#include<vector>
#define pb push_back
using namespace std;
const int MAXCOORD = 50001;
ifstream in("tribute.in");
ofstream out("tribute.out");
int i , j , n , dx , dy , mins1 = 1000000000 , mins2 = 1000000000;
int it1,it2,a,b;
vector <int> x;
vector <int> y;
int Bx[MAXCOORD] , By[MAXCOORD] , cnt_x[2 * MAXCOORD] , cnt_y[2 * MAXCOORD];
int main()
{
in >> n >> dx >> dy;
for( i = 1 ; i <= n ; ++i ) {
in >> a >> b;
x.pb(a) , y.pb(b);
cnt_x[a]++ , cnt_y[b]++;
}
for( i = 1 ; i <= MAXCOORD ; ++i )
cnt_x[i] += cnt_x[i - 1] ,
cnt_y[i] += cnt_y[i - 1];
for( i = 0 ; i < x.size() ; ++i )
if ( x[i] > dx ) Bx[0] += x[i] - dx;
for ( i = 1 ; i <= MAXCOORD ; ++i ) {
Bx[i] = Bx[i - 1] + cnt_x[i - 1] - ( n - cnt_x[i + dx - 1] );
if ( Bx[i] < mins1 ) mins1 = Bx[i];
}
for( i = 0 ; i < y.size() ; ++i )
if ( y[i] > dy ) By[0] += y[i] - dy;
for ( i = 1 ; i <= MAXCOORD ; ++i ) {
By[i] = By[i - 1] + cnt_y[i - 1] - ( n - cnt_y[i + dy - 1] );
if ( By[i] < mins2 ) mins2 = By[i];
}
out << mins1 + mins2 << "\n";
return 0;
}