Pagini recente » Cod sursa (job #2455174) | Cod sursa (job #3141737) | Cod sursa (job #764776) | Cod sursa (job #2285741) | Cod sursa (job #68166)
Cod sursa(job #68166)
#include <cstdio>
#include <vector>
#include <algorithm>
#define fin "orase.in"
#define fout "orase.out"
using namespace std;
struct nod { int d,len; };
int N,M,ret;
vector <nod> v;
bool cmp(nod a,nod b) {
return a.d <= b.d;
}
inline int absf(int a) {
if (a < 0) a*=-1;
return a;
}
int main() {
int i,bst,d1,d2;
nod tmp;
freopen(fin,"r",stdin); freopen(fout,"w",stdout);
scanf("%d%d",&M,&N);
for (i=0;i<N;++i) {
scanf("%d%d",&tmp.d,&tmp.len);
if (tmp.d <= M) v.push_back(tmp);
}
sort(v.begin(),v.end(),cmp);
bst=0;
for (i=1;i<(int)v.size();++i) {
d1=v[i].len + v[i-1].len + absf(v[i].d - v[i-1].d);
d2=v[i].len + v[bst].len + absf(v[i].d - v[bst].d);
if (d1 > ret) ret=d1;
if (d2 > ret) ret=d2;
if (d1 > d2) bst=i-1;
}
printf("%d\n",ret);
return 0;
}