Pagini recente » Cod sursa (job #114669) | Cod sursa (job #684269) | Cod sursa (job #2082509) | Cod sursa (job #140536) | Cod sursa (job #1395824)
#include <cstdio>
using namespace std;
int n,k,a[2201],i,x,y,lc[2201],cc[2201],lin,col,range,cost;
int main()
{
freopen("naveplanare.in","r",stdin);
freopen("naveplanare.out","w",stdout);
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
{
scanf("%d%d",&x,&y);x+=1100;y+=1100;
lc[x]++;if(lc[x]==1){lin++;}
cc[y]++;if(cc[y]==1){col++;}
}
range=0;
while(lin<k)
{
range++;
for(i=100;i<=2100;i++)
{
if((lc[i]>=2)&&(lin<k))
{
if(lc[i-range]==0)
{
cost+=range;
lc[i-range]++;
lc[i]--;
lin++;
}
}
if((lc[i]>=2)&&(lin<k))
{
if(lc[i+range]==0)
{
cost+=range;
lc[i+range]++;
lc[i]--;
lin++;
}
}
}
}range=0;
while(col<k)
{
range++;
for(i=100;i<=2100;i++)
{
if((cc[i]>=2)&&(col<k))
{
if(cc[i-range]==0)
{
cost+=range;
cc[i-range]++;
cc[i]--;
col++;
}
}
if((cc[i]>=2)&&(col<k))
{
if(cc[i+range]==0)
{
cost+=range;
cc[i+range]++;
cc[i]--;
col++;
}
}
}
}
printf("%d",cost);
return 0;
}