Cod sursa(job #858780)

Utilizator Stefex09Stefan Teodorescu Stefex09 Data 19 ianuarie 2013 13:03:02
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

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

struct Strada
{
    int L, D;
} V[50010];

inline int abs (const int &A)
{
    if (A < 0)
        return -A;

    return A;
}

inline int _max (const int &A, const int &B)
{
    if (A > B)
        return A;

    return B;
}

inline bool comp (const Strada &A, const Strada &B)
{
    return (A.D <= B.D);
}

int main()
{
    int M, N, i, Ans = 0, BestL, BestD;

    in >> M >> N;

    for (i = 1; i <= N; i ++)
        in >> V[i].D >> V[i].L;

    sort (V + 1, V + N + 1, comp);
    BestL = V[1].L;
    BestD = V[1].D;

    for (i = 2; i <= N; i ++){
        Ans = _max (Ans, BestL + V[i].L - BestD + V[i].D);

        if (V[i].L > BestL - BestD + V[i].D){
            BestD = V[i].D;
            BestL = V[i].L;
        }
    }

    out << Ans;

    return 0;
}