Cod sursa(job #912113)

Utilizator netedu_andreiFII Andrei Netedu netedu_andrei Data 12 martie 2013 08:41:02
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

struct nod {
    int x,y;
};

bool comp(nod a, nod b) {
    if(a.x < b.x) return 1;
    else if(a.x == b.x && a.y < b.y) return 1;
    return 0;
}

nod a[51000];

int main()
{
    int i,n,m,max,maxdist,pozd;
    freopen("orase.in","r",stdin);
    freopen("orase.out","w",stdout);
    scanf("%d %d",&n,&m);
    for(i=0;i<m;i++)
        scanf("%d %d",&a[i].x,&a[i].y);
    sort( a, a+m, comp);

    max=a[0].y; pozd=a[0].x; maxdist=0;
    for(i=1; i<m; i++)
    {
        if(max + a[i].x-pozd + a[i].y > maxdist) maxdist = max + a[i].x - pozd + a[i].y ;
        if(a[i].y > max + a[i].x-pozd) {
            max= a[i].y;
            pozd= a[i].x;
        }
    }
    printf("%d\n",maxdist);
    return 0;
}