Cod sursa(job #1001522)

Utilizator mvcl3Marian Iacob mvcl3 Data 25 septembrie 2013 12:02:47
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <algorithm>
#define IN "orase.in"
#define OUT "orase.out"
#define MAX_SIZE 50009

std :: ifstream f(IN);
std :: ofstream g(OUT);

int N, M;
struct DIS
{
    int Li;
    int Di;
}   O[MAX_SIZE];

inline void READ_DATA()
{
    f >> M >> N;

    for(int i = 1; i <= N; ++i)
        f >> O[i].Di >> O[i].Li;
}

inline bool CMP(DIS A, DIS B)
{
    return A.Di < B.Di;
}

inline void SOLVE()
{
    int j = 1, BEST_SUM = 0, SUM = 0;
    for(int i = 2; i <= N; ++i)
    {
        SUM = O[i].Li + O[i].Di - O[j].Di + O[j].Li;
        BEST_SUM = std :: max(BEST_SUM, SUM);

        if(O[j].Li + O[i].Di - O[j].Di < O[i].Li)
            j = i;
    }
    g << BEST_SUM << '\n';
}

int main()
{
    READ_DATA();
    std :: sort(O + 1, O + N + 1, CMP);
    SOLVE();

    g.close();
    return 0;
}