Cod sursa(job #186012)

Utilizator ErgoVicol Sergiu Constantin Ergo Data 26 aprilie 2008 15:54:18
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
// Orase .infoarena
#include <fstream>
#include <algorithm>
using namespace std;

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

#define NMAX 50004

struct drum
{
    int D;
    int L;
};

int sortare(drum a, drum b)
{
    return a.D<b.D;
}

int main()
{
    //Constante
    drum A[NMAX],maxc;
    int n,m,max=0;
    //Variabile
    int i;
    fin>>m>>n;
    for ( i = 1; i <= n ; i++)
    {
        fin>>A[i].D>>A[i].L;    //Citim Var
    }
    sort(A+1,A+n+1,sortare);    //Sortam Drumurile dupa distanta fata de origine

    maxc.D=A[1].D,maxc.L=A[1].L;

    for ( i = 2 ; i <= n ; i++ )
    {
        if (A[i].D-maxc.D+A[i].L+maxc.L>max) max=A[i].D-maxc.D+A[i].L+maxc.L;   //Vedem daca drumul maxim actual e mai bun ca maxul
        if (A[i].D-maxc.D+maxc.L<A[i].L)       //Actualizare MAX
            maxc.D=A[i].D,maxc.L=A[i].L;
    }
    fout<<max;
    fout.close();
    return 0;
}