Pagini recente » Borderou de evaluare (job #1391570) | Borderou de evaluare (job #1766487) | Borderou de evaluare (job #1537524) | Borderou de evaluare (job #2743259) | Cod sursa (job #1662501)
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream f("tribute.in");
ofstream g("tribute.out");
int n,dx,dy,x[50002],y[50002];
int minim(int a, int b, int c, int d, int e)
{
int mini;
mini=min(a,b); mini=min(mini,c); mini=min(mini,d); mini=min(mini,e);
return mini;
}
int main()
{
int i,j,k,distmin,distanta;
int mini=5000000;
f>>n>>dx>>dy;
for(i=1;i<=n;i++)
{
f>>x[i]>>y[i];
x[i]++;y[i]++;
}
int k1,k2;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) { distanta=0;
for(k=1;k<=n;k++)
{
for(k1=i;k1<=i+x[i]-1 && k1<=n;k1++)
for(k2=j;k2<=j+y[i]-1 && k2<=n;k2++)
distmin=minim((abs(k1-x[k])+abs(k2-y[k])) , (abs(k1-1-x[k])+abs(k2-y[k])) , (abs(k1-x[k])+abs(k2+1-y[k])) , (abs(k1+1-x[k])+abs(k2-y[k])) , (abs(k1-x[k])+abs(k2-1-y[k])));
distanta+=distmin;
}
if(distanta<mini) mini=distanta;
}
}
g<<mini<<'\n';
f.close();
g.close();
return 0;
}