Cod sursa(job #1978095)

Utilizator EuAlexOtaku Hikikomori EuAlex Data 6 mai 2017 22:29:07
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <cstdio>
#include <algorithm>

using namespace std;

struct info {
    int d, l;
};

bool cmp(info a, info b) {
    if(a.d == b.d) {
        return a.l < b.l;
    }
    return a.d < b.d;
}

info v[50001];

int main() {
    freopen("orase.in", "r", stdin);
    freopen("orase.out", "w", stdout);

    int n, m;
    scanf("%d%d", &n, &m);

    for(int i = 1; i <= m; ++ i) {
        int d, l;
        scanf("%d%d", &d, &l);
        v[i].d = d;
        v[i].l = l;
    }

    sort(v + 1, v + m + 1, cmp);

    int maxim = v[1].l - v[1].d, raspuns = 0;

    for(int i = 2; i <= m; ++ i) {
        int inainte;
        inainte = v[i - 1].l - v[i - 1].d;
        if(inainte > maxim) {
            maxim = inainte;
        }
        if(v[i].d + v[i].l + maxim > raspuns) {
            raspuns = v[i].d + v[i].l + maxim;
        }
    }

    printf("%d", raspuns);

    return 0;
}