Pagini recente » Cod sursa (job #2153779) | Cod sursa (job #2906412) | Cod sursa (job #528599) | Cod sursa (job #2020284) | Cod sursa (job #3264484)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("orase.in");
ofstream fout("orase.out");
const int NMAX = 50001;
struct strada {
int d;
int l;
} strazi[NMAX];
bool comp(strada a, strada b){
if(a.d < b.d)
return 1;
if(a.d == b.d)
return a.l > b.l;
return 0;
}
int d(strada a, strada b){
return b.d - a.d + a.l + b.l;
}
int main(){
int m, n;
fin >> m >> n;
for(int i = 0; i < n; i++)
fin >> strazi[i].d >> strazi[i].l;
sort(strazi, strazi + n, comp);
int dmax = d(strazi[0], strazi[1]), u = 0;
for(int i = 2; i < n; i++){
if(d(strazi[i-1], strazi[i]) > d(strazi[u], strazi[i]))
u = i - 1;
dmax = max(dmax, d(strazi[u], strazi[i]));
}
fout << dmax;
fin.close();
fout.close();
return 0;
}