Cod sursa(job #3122352)

Utilizator Gabriel_DascalescuGabriel Dascalescu Gabriel_Dascalescu Data 18 aprilie 2023 17:12:19
Problema Orase Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <fstream>
#include <algorithm>
#define nmax 50005

using namespace std;

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

struct turn
{
    int distanta, inaltime;
};

bool cmp(turn a, turn b)
{
    if( a.distanta == b.distanta)
        return a.inaltime < b.inaltime;
    return a.distanta<b.distanta;
}

long long max(long long a, long long b)
{
    if(a >= b)
        return a;
    else
        return b;
}

long long n, m, maxim, stanga;

turn v[nmax];

int main() {
    in>>m>>n;
    for(int i=1; i<=n; i++)
    {
        in >> v[i].distanta >> v[i].inaltime;
    }
    sort(v+1, v+n+1, cmp);
    stanga = v[1].distanta;
    maxim += v[1].distanta + v[1].inaltime;
    for(int i=2; i<=n; i++)
    {
        maxim = max(maxim, stanga + v[i].inaltime + v[i].distanta- v[1].distanta );
        stanga = max(stanga,   v[i].inaltime + v[1].distanta- v[i].distanta);
    }
    out<<maxim;
    return 0;
}