Cod sursa(job #1400736)

Utilizator cypry97Dascalitei Ciprian cypry97 Data 25 martie 2015 13:40:02
Problema Orase Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;

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

int m,n;
vector < pair < int, int > > v;
int rez;

void citire()
{
    in>>m>>n;
    int i,d,l;
    v.reserve(n+1);
    for(i=1;i<=m;i++)
    {
        in>>d>>l;
        v.push_back(make_pair(d,l));
    }
}

void rezolvare()
{
    sort(v.begin(),v.end(),[](pair < int, int > a, pair < int, int > b){ return a.first<a.second; });
    int dmax=-1;
    int dcur=v.front().first, lcur=-1;
    for(auto x: v)
    {
        if(x.first-dcur+lcur+x.second>dmax)
            dmax=x.first-dcur+lcur+x.second;
        if(x.first+x.second>dcur+lcur)
        {
            dcur=x.first;
            lcur=x.second;
        }
    }
    rez=dmax;
}

void afisare()
{
    out<<rez;
}

int main()
{
    citire();
    rezolvare();
    afisare();
    return 0;
}