Pagini recente » Infoarena Monthly 2014 - Solutii Runda 2 | Cod sursa (job #85868) | Cod sursa (job #1878332) | Cod sursa (job #647658) | Cod sursa (job #795894)
Cod sursa(job #795894)
#include<fstream>
using namespace std;
#include<algorithm>
ifstream f("orase.in");
ofstream g("orase.out");
struct oras
{
int d,l;
}
S[50001];
int cmp(oras a,oras b)
{
if(a.d==b.d)
return a.l<b.l;
return a.d<b.d;
}
int max(int a,int b)
{
if(a>b)
return a;
return b;
}
int n,i,m,maxim,best;
int main ()
{
f>>m>>n;
for(i=1;i<=n;++i)
f>>S[i].d>>S[i].l;
sort(S+1,S+n+1,cmp);
for(i=1;i<=n;++i)
{
maxim+=S[i].d-S[i-1].d;
maxim=max(S[i-1].l+S[i].d-S[i-1].d,maxim);
if(maxim+S[i].l>best)
best=maxim+S[i].l;
}
g<<best;
return 0;
}