Pagini recente » Cod sursa (job #3338631) | Cod sursa (job #3318986) | Cod sursa (job #3318996) | Cod sursa (job #3302480) | Cod sursa (job #3321290)
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;
ifstream fin ("tribute.in");
ofstream fout ("tribute.out");
int c_left[50005], c_right[50005], x[50005], y[50005];
int main()
{
int n,dx,dy,i,a,b,amax,bmax,cnt=0, sum,sum1;
fin>>n>>dx>>dy;
amax=bmax=-1;
sum=sum1=0;
for (i = 1; i <= n; i++){
fin>>a>>b;
x[a]++;
y[b]++;
amax = max (a, amax);
bmax = max (b, bmax);
}
/*for (i = 0; i <= amax; i++)
fout<<x[i]<<" ";
fout<<"\n";
for (i = 0; i <= bmax; i++)
fout<<y[i]<<" ";
fout<<"\n";*/
cnt=x[0];
for (i = 1; i <= amax; i++){
c_left[i]=c_left[i-1]+cnt;
if(x[i] > 0)
cnt+=x[i];
}
cnt=x[amax];
for (i = amax-1; i >= 0; i--){
c_right[i]=c_right[i+1]+cnt;
if(x[i] > 0)
cnt+=x[i];
}
for (i = 0; i <= amax-dx; i++){
if (c_left[i]+c_right[i+dx] < sum){
sum = c_left[i]+c_right[i+dx];
}
}
/*for (i = 0; i <= amax; i++)
fout<<c_left[i]<<" ";
fout<<"\n";
for (i = 0; i <= amax; i++)
fout<<c_right[i]<<" ";
fout<<"\n";*/
cnt=0;
for (i = 0; i <= amax; i++)
c_left[i]=0;
for (i = 0; i <= bmax; i++)
c_right[i]=0;
cnt=y[0];
for (i = 1; i <= bmax; i++){
c_left[i]=c_left[i-1]+cnt;
if(y[i] > 0)
cnt+=y[i];
}
cnt=y[bmax];
for (i = bmax-1; i >= 0; i--){
c_right[i]=c_right[i+1]+cnt;
if(y[i] > 0)
cnt+=y[i];
}
for (i = 0; i <= bmax-dy; i++){
if (c_left[i]+c_right[i+dy] < sum1){
sum1 = c_left[i]+c_right[i+dy];
}
}
/*fout<<cx<<" "<<cx1<<" "<<cy<<" "<<cy1<<"\n";
for (i = 0; i <= amax; i++)
fout<<c_left[i]<<" ";
fout<<"\n";
for (i = 0; i <= amax; i++)
fout<<c_right[i]<<" ";
fout<<"\n";*/
fout<<sum+sum1;
return 0;
}