Cod sursa(job #3362157)

Utilizator steleincerDavid G steleincer Data 3 august 2026 17:51:01
Problema Orase Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <iostream>
#include <fstream>

using namespace std;

int L[1000005];

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

    int M, N;
    fin >> M >> N;

    for (int i = 0; i < N; ++i) {
        int d, l;
        fin >> d >> l;
   
        if (l > L[d]) {
            L[d] = l;
        }
    }

    int distanta_maxima = 0;
    int maxim_stanga = -2000000000; 
    bool primul_oras = true;

    
    for (int d = 0; d <= M; ++d) {

        if (L[d] > 0) {
            if (!primul_oras) {
         
                int distanta_curenta = (d + L[d]) + maxim_stanga;
                if (distanta_curenta > distanta_maxima) {
                    distanta_maxima = distanta_curenta;
                }
            }

        
            int valoare_stanga = L[d] - d;
            if (valoare_stanga > maxim_stanga) {
                maxim_stanga = valoare_stanga;
            }

            primul_oras = false; 
        }
    }

    fout << distanta_maxima << "\n";
    return 0;
}