Cod sursa(job #1045112)

Utilizator diana97Diana Ghinea diana97 Data 30 noiembrie 2013 21:43:02
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f ("orase.in");
ofstream g ("orase.out");

int m, n;
struct street {int lg, poz;} strada[50001];

void citeste () {
    f>>m>>n;
    for (int i=1; i<=n; i++) f>>strada[i].poz>>strada[i].lg;
}

int conditie (street a, street b) {
    if (a.poz<b.poz) return 1;
    if (a.poz==b.poz && a.lg<b.lg) return 1;
    return 0;
}

void rezolva () {
    int rez, d;
    d=strada[1].lg-strada[1].poz;
    rez=strada[2].lg+strada[2].poz+d;
    for (int i=3; i<=n; i++) {
        d=max(strada[i-1].lg-strada[i-1].poz, d);
        rez=max(d+strada[i].lg+strada[i].poz, rez);
    }
    g<<rez<<'\n';
}


int main () {
    citeste ();
    sort (strada+1, strada+n+1, conditie);
    //for (int i=1; i<=n; i++) cout<<strada[i].poz;
    rezolva ();
    return 0;
}