Pagini recente » Cod sursa (job #1875196) | Cod sursa (job #1264150) | Cod sursa (job #205294) | Cod sursa (job #2067145) | Cod sursa (job #1400736)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream in("orase.in");
ofstream out("orase.out");
int m,n;
vector < pair < int, int > > v;
int rez;
void citire()
{
in>>m>>n;
int i,d,l;
v.reserve(n+1);
for(i=1;i<=m;i++)
{
in>>d>>l;
v.push_back(make_pair(d,l));
}
}
void rezolvare()
{
sort(v.begin(),v.end(),[](pair < int, int > a, pair < int, int > b){ return a.first<a.second; });
int dmax=-1;
int dcur=v.front().first, lcur=-1;
for(auto x: v)
{
if(x.first-dcur+lcur+x.second>dmax)
dmax=x.first-dcur+lcur+x.second;
if(x.first+x.second>dcur+lcur)
{
dcur=x.first;
lcur=x.second;
}
}
rez=dmax;
}
void afisare()
{
out<<rez;
}
int main()
{
citire();
rezolvare();
afisare();
return 0;
}