Cod sursa(job #3264484)

Utilizator Antonio8Mincu Antonio Alexandru Antonio8 Data 21 decembrie 2024 16:20:23
Problema Orase Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#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;
}