Cod sursa(job #3304709)

Utilizator razviii237Uzum Razvan razviii237 Data 26 iulie 2025 11:57:53
Problema Orase Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
//#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>

using namespace std;

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

int m, n, x, y, maxim;
pair<int, int> v[50005];

int distanta(pair<int, int> a, pair<int, int> b) {
    return a.second + abs(b.first - a.first) + b.second;
}

int main() {
    cin >> m >> n;
    for(int i = 1; i <= n; i ++) {
        cin >> x >> y;
        v[i] = {x, y};
    }
    sort(v+1, v+n+1);
    int cmd = 1; // cel mai departat
    for(int i = 2; i <= n; i ++) {
        if(distanta(v[i], v[cmd]) > maxim)
            maxim = distanta(v[i], v[cmd]);
        // este v[i] cel mai departat acum?
        if(v[i].second > v[cmd].second + (v[i].first - v[cmd].first)) {
            // v[i] este mai departat decat v[cmd]
            cmd = i;
        }
    }
    cout << maxim << '\n';
    return 0;
}