Pagini recente » Cod sursa (job #1521881) | Cod sursa (job #528616) | Cod sursa (job #2628963) | Cod sursa (job #2729346) | Cod sursa (job #1045111)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("orase.in");
ofstream g ("orase.out");
int m, n;
struct street {int lg, poz;} strada[5001];
void citeste () {
f>>m>>n;
for (int i=1; i<=n; i++) f>>strada[i].poz>>strada[i].lg;
}
int conditie (street a, street b) {
if (a.poz<b.poz) return 1;
if (a.poz==b.poz && a.lg<b.lg) return 1;
return 0;
}
void rezolva () {
int rez, d;
d=strada[1].lg-strada[1].poz;
rez=strada[2].lg+strada[2].poz+d;
for (int i=3; i<=n; i++) {
d=max(strada[i-1].lg-strada[i-1].poz, d);
rez=max(d+strada[i].lg+strada[i].poz, rez);
}
g<<rez<<'\n';
}
int main () {
citeste ();
sort (strada+1, strada+n+1, conditie);
//for (int i=1; i<=n; i++) cout<<strada[i].poz;
rezolva ();
return 0;
}