Pagini recente » Cod sursa (job #209915) | Cod sursa (job #1393844) | Cod sursa (job #1574569) | Cod sursa (job #2352022) | Cod sursa (job #68546)
Cod sursa(job #68546)
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
long x,y;
}coord;
coord c[50007],b[50009];
long ii[50007];
long n,m;
FILE*f=fopen("orase.in","r");
FILE*g=fopen("orase.out","w");
void read()
{
fscanf(f,"%ld %ld",&m,&n);
long i;
for(i=0;i<n;++i)
{
fscanf(f,"%ld %ld",&c[i].x,&c[i].y);
ii[i]=i;
}
}
int cmp(const void *a, const void *b)
{
long int x = * (long int *) a, y = * (long int *) b;
if (c[x].x==c[y].x) return c[x].y - c[x].y;
return c[x].x - c[y].x;
}
void sortare()
{
qsort(ii,n,sizeof(ii[0]),cmp);
for(long i=0;i<n;++i) b[i]=c[ii[i]];
}
void solve()
{
long i,max=-1,j;
b[n]=b[1];
for(i=0;i<n;++i)
{
j=i+1;
if(b[i].y+b[j].y+abs(b[i].x-b[j].x)>max)
max=b[i].y+b[j].y+abs(b[i].x-b[j].x);
}
fprintf(g,"%ld",max);
}
int main()
{
read();
sortare();
solve();
return 0;
}