Pagini recente » Cod sursa (job #2375356) | Cod sursa (job #235601) | Cod sursa (job #2506933) | Cod sursa (job #2789480) | Cod sursa (job #3284759)
#include <fstream>
#include <cmath>
#include <algorithm>
using namespace std;
const int N = 50000; /// strazi laturalnice
struct oras
{
int d, l;
///d = distanta fata de inceputul drumului principal
///l = lungimea drumului lat
};
oras o[N];
int distanta(oras a, oras b)
{
return (b.d - a.d + a.l + b.l);
}
bool cmp(oras a, oras b)
{
return (a.d < b.d);
}
int main()
{
ifstream in("orase.in");
ofstream out("orase.out");
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++)
{
if (distanta(o[i - 1], o[i]) > distanta(o[last], o[i]));
{
last = i - 1;
}
d_max = max(distanta(o[last], o[i]), d_max);
}
out << d_max << endl;
in.close();
out.close();
return 0;
}