Cod sursa(job #1097991)

Utilizator oprea1si2si3Oprea Sebastian oprea1si2si3 Data 4 februarie 2014 12:25:10
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
#include<algorithm>
using namespace std;

struct punct {int d,l;};
punct Oras[50010];
int n,m,maxim;

bool cmp(punct A,punct B) {
    return A.d<B.d;
}

void citire() {

    ifstream in("orase.in");
    int i;
    in>>m>>n;
    for(i=1;i<=n;i++)
        in>>Oras[i].d>>Oras[i].l;
    in.close();

}

void solve() {

    int i,dist,last;
    sort(Oras+1,Oras+n+1,cmp);

    last=1;
    for(i=2;i<=n;i++) {
        dist=Oras[last].l+Oras[i].l+(Oras[i].d-Oras[last].d);
        if(Oras[i].l>Oras[last].l+Oras[i].d-Oras[last].d)
            last=i;
        if(dist>maxim)
            maxim=dist;
    }

}

void afisare() {

    ofstream out ("orase.out");
    out<<maxim<<'\n';
    out.close();

}

int main() {

    citire();
    solve();
    afisare();
    return 0;

}