Cod sursa(job #1167035)

Utilizator cristinamateiCristina Matei cristinamatei Data 4 aprilie 2014 11:32:06
Problema Orase Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <algorithm>

using namespace std;

struct pereche
{
    int d,l;
};
pereche a[50001];

int main()
{
    ifstream in("orase.in");
    ofstream out("orase.out");
    int n, m, i, max = 0, min, poz2, s, gasit;
    in >> m >> n;
    for ( i = 1; i <= n; i++ )
    {
        in >> a[i].d >> a[i].l;
    }
    do
    {
        gasit = 0;
        for ( i = 1; i < n; i++ )
        {
            if ( a[i].d > a[i+1].d )
            {
                swap ( a[i].d, a[i+1].d);
                swap ( a[i].l,a[i+1].l);
                gasit = 1;
            }
        }
    }while( gasit != 0 );
    poz2 = 1;
    min = a[i].l;
    for ( i = 2; i <= n; i++ )
    {
        if ( a[i].l > a[poz2].l + a[i].d - a[poz2].d )
        {
            poz2 = i;
            min = a[i].l;
        }
        s = a[i].l + a[i].d - a[poz2].d + min;
        if ( s > max )
        {
            max = s;
        }
    }
    out << max;
    return 0;
}