Pagini recente » Cod sursa (job #146303) | Cod sursa (job #2911183) | Cod sursa (job #3267585) | Cod sursa (job #372592) | Cod sursa (job #3284737)
#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
};
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;
}
for (int i = 0; i < n + 1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (o[i].d > o[j].d)
{
swap(o[i], o[j]);
}
}
}
int d_max = distanta(o[0], o[1]);
oras last = o[0];
for (int i = 2; i < n; i++)
{
int d_c = distanta(o[i], o[i - 1]);
if (d_c > d_max)
{
d_max = d_c;
last = o[i];
}
}
out << d_max;
return 0;
}