Cod sursa(job #488328)

Utilizator marius21Petcu Marius marius21 Data 28 septembrie 2010 12:25:36
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <algorithm>

FILE * fin = fopen ("orase.in","r");
FILE * fout = fopen ("orase.out","w");

struct street
{
    int pos,length;
    bool operator< (const street & a) const
    {
        return pos<a.pos;
    }
};

street a[50000];

int main ()
{
    int n,m;
    fscanf(fin,"%d%d",&m,&n);
    for (int i=0; i<n ;i++)
        fscanf(fin,"%d%d",&a[i].pos,&a[i].length);
    std::sort(a,a+n);
    long long max = 0;
    long long farthest = -0x3f3f3f;
    for (int i=0; i<n; i++)
    {
        long long sum = farthest+a[i].pos+a[i].length;
        if (sum>max)
            max=sum;
        if (a[i].length-a[i].pos>farthest)
            farthest=a[i].length-a[i].pos;
    }
    fprintf(fout,"%d",max);
    fclose(fin);
    fclose(fout);
    return 0;
}