Pagini recente » Cod sursa (job #2836687) | Cod sursa (job #357113) | Cod sursa (job #2391378) | Cod sursa (job #2571778) | Cod sursa (job #2676975)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("tribute.in");
ofstream fout("tribute.out");
int n,dx,dy,a,b;
int y[50002],x[50002],stanga,dreapta,disty,distx;
int m[100][100];
int main()
{
fin>>n>>dx>>dy;
for(int i=0; i<n; i++)
{
fin>>a>>b;
x[a]++;
distx+=a;
y[b]++;
disty+=b;
m[a][b]++;
}
/*for(int i=0; i<10; i++)
{
for(int j=0; j<10; j++)
{
if(m[i][j]>0) cout<<".";
else cout<<" ";
}
cout<<"\n";
}*/
stanga=0;
dreapta=n;
dreapta-=x[0];
int distxmin=distx;
for(int i=1; i<50002 && stanga<=dreapta; i++)
{
//cout<<distx<<" "<<stanga<<" "<<dreapta<<"\n";
distx-=dreapta;
dreapta-=x[i];
distx+=stanga;
if(i>=dx) stanga+=x[i-dx];
distxmin=min(distx,distxmin);
}
stanga=0;
dreapta=n;
dreapta-=y[0];
int distymin=disty;
for(int i=1; i<50002 && stanga<=dreapta; i++)
{
//cout<<disty<<" "<<stanga<<" "<<dreapta<<"\n";
disty-=dreapta;
dreapta-=y[i];
disty+=stanga;
if(i>=dy) stanga+=y[i-dy];
distymin=min(disty,distymin);
}
fout<<distxmin+distymin;
return 0;
}