Pagini recente » Cod sursa (job #2195262) | Cod sursa (job #2244615) | Cod sursa (job #1975124) | Cod sursa (job #2300952) | Cod sursa (job #68701)
Cod sursa(job #68701)
#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,max2;
b[n]=b[1];
max2=b[0].y-b[0].x;
j=0;
for(i=1;i<n;++i)
{
if(b[i].x-b[j].x+b[i].y+b[j].y>max) max=b[i].x-b[j].x+b[i].y+b[j].y;
if(b[i].y-b[i].x>max2) { max2=b[i].y-b[i].x; j=i;}
}
fprintf(g,"%ld",max);
}
int main()
{
read();
sortare();
solve();
return 0;
}