Cod sursa(job #968882)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 2 iulie 2013 22:43:03
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <algorithm>
//#include <queue>

using namespace std;

struct elem
{
    int d;
    int h;
}v[50005];

bool comp(const elem &a,const elem &b)
{
    if(a.d<b.d)
        return 1;
    else if(a.d==b.d)
        if(a.h<b.h)
           return 1;
    return 0;
}

//bool operator<(const elem &a,const elem &b)
//{
//    if((a.h-a.d)<(b.h-b.d))
//        return 1;
//    return 0;
//}

int main()
{
    ifstream cin("orase.in");
    ofstream cout("orase.out");

    int n,m,i;
    cin>>m>>n;
    for(i=0;i<n;i++)
        cin>>v[i].d>>v[i].h;
    sort(v,v+n,comp);
    //priority_queue<elem> coada;
    //coada.push(v[0]);
    int sol=-1,aux;
    elem best=v[0];
    for(i=1;i<n;i++)
    {
        aux=v[i].h+v[i].d-best.d+best.h;
        if(aux>sol)
            sol=aux;
        if((v[i].h-v[i].d)>(best.h-best.d))
            best=v[i];
        //coada.push(v[i]);
    }
    cout<<sol<<'\n';
    cin.close();
    cout.close();
    return 0;
}