Pagini recente » Cod sursa (job #2555013) | Cod sursa (job #1430512) | Cod sursa (job #2341798) | Cod sursa (job #2746955) | Cod sursa (job #278433)
Cod sursa(job #278433)
#include<stdio.h>
#include<math.h>
#define max(a,b) ((a>b) ? a : b)
long n,m,l,d,optim;
struct max
{ long val,crt;
long dist,lun;
}max1,max2,min1,min2;
int main()
{
long i;
freopen("orase.in","r",stdin);
freopen("orase.out","w",stdout);
scanf("%d%d",&m,&n);
for(i=1;i<=n;i++)
{ scanf("%d%d",&d,&l);
if(l+d>max1.val)
{ max2=max1;
max1.val=l+d;
max1.dist=d;
max1.lun=l;
max1.crt=i;
}
else
if(l+d>max2.val)
{ max2.val=l+d;
max2.dist=d;
max2.lun=l;
max2.crt=i;
}
if(l-d>min1.val)
{ min2=min1;
min1.val=l-d;
min1.dist=d;
min1.lun=l;
min1.crt=i;
}
else
if(l-d>min2.val)
{ min2.val=l-d;
min2.dist=d;
min2.lun=l;
min2.crt=i;
}
}
if(max1.crt!=min1.crt)
optim=max1.lun+min1.lun+abs(max1.dist-min1.dist);
else
optim=max(max1.lun+min2.lun+abs(max1.dist-min2.dist),max2.lun+min1.lun+abs(max2.dist-min1.dist));
printf("%d\n",optim);
return 0;
}