Cod sursa(job #2819861)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 19 decembrie 2021 12:08:20
Problema Orase Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin  ("orase.in");
ofstream fout ("orase.out");

const int DIM = 50005;

struct oras{
    int d;
    int l;
} v[DIM];

inline bool cmp(const oras &a, const oras &b){
    return a.d < b.d;
}

deque <int> q;
int n, m, sol;

int main (){
    fin>>m>>n;
    for(int i=1; i<=n; i++)
        fin>>v[i].d>>v[i].l;

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

    for(int i=1; i<=n; i++){

        if(i != 1)
            sol = max(sol, v[i].l + v[q.front()].l + (v[i].d - v[q.front()].d));

        while(!q.empty() && v[i].l > v[ q.back() ].l + (v[i].d - v[q.back()].d))
            q.pop_back();
        q.push_back(i);
    }

    fout<<sol;
    return 0;
}