Cod sursa(job #403994)

Utilizator dacyanMujdar Dacian dacyan Data 25 februarie 2010 17:28:14
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream> 
#include <algorithm> 
#include <vector> 
#define MAX 50001 
using namespace std; 

struct S {
    long l;
    long d;
}a[MAX];

bool Calc (S, S);
//long l[MAX], d[MAX]; 
long m, n, i, j, x, y; 

ifstream fin("orase.in"); 
ofstream fout("orase.out"); 

int main() 
{ 
    fin >> m >> n; 
    for ( i = 0; i < n; ++i) 
    { 
        fin >> a[i].d >> a[i].l; 
        //d[i] = x * 100000 + y; 
    }     
    
    sort(a, a + n, Calc); 
    long dt = a[0].l - a[0].d; 
    long  maxt  = 0, dn, max; 

     for ( i = 1; i < n; ++i) 
     { 
          max = 0; 
          dn = a[i].l - a[i].d; 
          max = a[i].l + a[i].d + dt; 
          if ( dn > dt) 
                    dt = dn; 
          if(maxt < max) 
                    maxt = max; 
     } 

     fout << maxt << '\n'; 
     fin.close(); 
     fout.close(); 
     return 0; 
}   


bool Calc(S a, S b)
{
    return a.d < b.d || a.d == b.d && a.l < b.l;
}