Cod sursa(job #1456470)

Utilizator BLz0rDospra Cristian BLz0r Data 30 iunie 2015 22:11:04
Problema Orase Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>
#include <algorithm>
using namespace std;

#define Nmax 50002
#define inf 0x3f3f3f3f

FILE *f = fopen ( "orase.in", "r" );
FILE *g = fopen ( "orase.out", "w" );

struct oras{
    int D, L;
}v[Nmax];

bool cmp ( oras A, oras B ){
    return A.D < B.D;
}

int main(){

    int N, M, maxdif = -inf, sol = -inf;

    fscanf ( f, "%d%d", &N, &M );

    for ( int i = 1; i <= N; ++i )
        fscanf ( f, "%d%d", &v[i].D, &v[i].L );

    sort ( v + 1, v + N + 1, cmp );

    for ( int i = 1; i <= N; ++i ){
        int val = v[i].D + v[i].L + maxdif;

        if ( sol < val )
            sol = val;

        if ( v[i].L - v[i].D > maxdif )
            maxdif = v[i].L - v[i].D;
    }

    fprintf ( g, "%d", sol );

    return 0;
}