Pagini recente » Cod sursa (job #2267512) | Cod sursa (job #1291823) | Cod sursa (job #2852878) | Cod sursa (job #899257) | Cod sursa (job #2330136)
#include <iostream>
#include <fstream>
using namespace std;
long long manhat(long long x1,long long y1,long long x2,long long y2)
{
if(x1<x2)
if(y1<y2)return (x2-x1)+(y2-y1);
else return (x2-x1)+(y1-y2);
else if(y1<y2) return(x1-x2)+(y2-y1);
else return (x1-x2)+(y1-y2);
}
int main()
{
ifstream f("pachete.in");
ofstream g("pachete.out");
long long a[5][50001],x,y,f1,f2;
int n,i,j,k;
f>>n;
f>>f1>>f2;
k=n;
for(i=1;i<=n;i++)
f>>a[1][i]>>a[2][i];
for(i=1;i<=n;i++)
{
a[3][i]=manhat(f1,f2,a[1][i],a[2][i]);
a[4][i]=-1;
}
for(i=1;i<=n;i++)
{
int p=0,q=0,min1=0;
for(j=1;j<=n;j++)
{
if(a[4][j]!=0)
if(i!=j)
{
if(a[3][i]>=a[3][j]+manhat(a[1][i],a[2][i],a[1][j],a[2][j]))
{
p++;
min1=a[3][j]+manhat(a[1][i],a[2][i],a[1][j],a[2][j]);
q=j;
}
}
}
if(p!=0)
{
k--;
a[3][i]=min1;
a[4][i]=q;
a[4][q]=0;
}
}
g<<k;
}