Cod sursa(job #3284746)

Utilizator roberttbhMarinescu Robert roberttbh Data 12 martie 2025 09:52:58
Problema Orase Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <cmath>
#include <algorithm>

using namespace std;

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

struct oras
{
    int d, l;
    ///d = distanta fata de inceputul drumului principal
    ///l = lungimea drumului lat
};

bool cmp(oras a, oras b)
{
    return (a.d < b.d);
}

const int N = 50000; /// strazi laturalnice
const int M = 1000000; /// lungime strada principala

oras o[N];

int distanta(oras a, oras b)
{
    return abs(a.d - b.d) + a.l + b.l;
}

int main()
{
    int m, n;
    in >> m >> n;
    for (int i = 0; i < n; i++)
    {
        in >> o[i].d >> o[i].l;
    }
    sort(o, o + n, cmp);
    int d_max = distanta(o[0], o[1]);
    int last = 0;
    for (int i = 2; i < n; i++)
    {
        int d_c = distanta(o[i], o[i - 1]);
        if (d_c > distanta(o[last], o[i]));
        {
            last = i - 1;
        }
        d_max = max(distanta(o[last], o[i]), d_c);
    }
    out << d_max;
    return 0;
}