Pagini recente » Cod sursa (job #3163873) | Cod sursa (job #2917296) | Cod sursa (job #2191499) | Cod sursa (job #540279) | Cod sursa (job #2526556)
#include <fstream>
#include <algorithm>
#include <cstring>
#define Nmax 100004
using namespace std;
ifstream fin("tribute.in");
ofstream fout("tribute.out");
int n,dx,dy;
int x[Nmax],y[Nmax],S;
void rezolvare (int c[],int start,int max12){
int lim=max12+start+1;
int st[Nmax],dr[Nmax];
memset(st,0,sizeof st);
memset(dr,0,sizeof dr);
int nr=0;
for (int i=0;i<=lim;i++)
{
if (i>0)
st[i]+=st[i-1]+nr;
nr+=c[i];
}
nr=0;
for (int i=lim;i>=0;i--)
{
dr[i]+=dr[i+1]+nr;
nr+=c[i];
}
int sol=1000000000;
for (int i=1;i<=n;i++)
{
sol=min(st[c[i]]+dr[c[i]+start],sol);
}
S+=sol;
}
int main()
{
int i,a,b;
fin>>n>>dx>>dy;
int max1=0;
int max2=0;
for (i=1;i<=n;i++)
{
fin>>a>>b;
max1=max(a,max1);
max2=max(b,max2);
x[a]++;
y[b]++;
}
rezolvare(x,dx,max1);
rezolvare(y,dy,max2);
fout<<S;
return 0;
}