Cod sursa(job #120317)

Utilizator TabaraTabara Mihai Tabara Data 4 ianuarie 2008 21:36:37
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

#define in "orase.in"
#define out "orase.out"

int N, M, MAX;
vector<int> D;
vector<int> L;
vector<int> ind;

bool cmp( int a, int b )
{
     return D[a] < D[b];
}

int main()
{
    freopen ( in, "r", stdin );
    freopen ( out, "w", stdout );
    
    int DIST, LUNG, i, j;
    
    scanf( "%d %d", &M, &N );
    for ( i = 1; i <= N; ++i )
    {
        scanf( "%d%d", &DIST, &LUNG );
        D.push_back( DIST );
        L.push_back( LUNG );
        ind.push_back( i-1 );
    }
    sort( ind.begin(), ind.end(), cmp );
    MAX = 0;
    j = L[ind[0]] - D[ind[0]];
    for ( i = 1; i < ind.size(); ++i )
    {
        if ( D[ind[i]] + L[ind[i]] + j > MAX )
           MAX = D[ind[i]] + L[ind[i]] + j;
        if ( L[ind[i]] - D[ind[i]] > j )
           j = L[ind[i]] - D[ind[i]];
    }
        
    printf( "%d\n", MAX );
    return 0;
}