Pagini recente » Cod sursa (job #2233720) | Cod sursa (job #3039784) | Cod sursa (job #1321609) | Cod sursa (job #1230303) | Cod sursa (job #173185)
Cod sursa(job #173185)
#include<fstream.h>
int i,n,m,ok=0,j,max,max1,max2,l1,l2,q,p,l,d,s;
struct sir {int x,y;};
sir v[50010],aux;
int main()
{
ifstream f("orase.in");
ofstream g("orase.out");
f>>m>>n;
for(i=1;i<=n;i++)
f>>v[i].x>>v[i].y;
while(!ok)
{
ok=1 ;
for(i=1;i<n;i++)
if(v[i].x>v[i+1].x) {aux=v[i]; v[i]=v[i+1]; v[i+1]=aux; ok=0;}
}
max1=v[1].y; p=1;
l1=v[1].x;
for(i=2;i<=n;i++)
if(v[i].y>max1+v[i].x-l1) {max1=v[i].y;l1=v[i].x;p=i;}
else { max1=max1+v[i].x-l1;
l1=v[i].x;
}
max2=v[n].y; q=n;
l2=v[n].x;
for(i=n-1;i>=p;i--)
if(v[i].y>max2+l2-v[i].x) {max2=v[i].y; l2=v[i].x; q=i;}
else {max2=max2+l2-v[i].x;
l2=v[i].x;
}
max=v[p].y+v[q].y+v[q].x-v[p].x ;
g<<max;
f.close();
g.close();
return 0;
}