Mai intai trebuie sa te autentifici.
Cod sursa(job #3304709)
| Utilizator | 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;
}