Pagini recente » Cod sursa (job #1558926) | Cod sursa (job #2457159) | Cod sursa (job #2103320) | Cod sursa (job #3147064) | Cod sursa (job #2670232)
#include <fstream>
#include <algorithm>
#include <cstdlib>
using namespace std;
ifstream in("orase.in");
ofstream out("orase.out");
const int N = 50000;
struct oras
{
int d, l;
};
int m, n;
oras v[N];
bool cmp(oras x, oras y)
{
return (x.d < y.d);
}
int comp(const void *p, const void *q)
{
oras *px, *py;
px = (oras*)p;
py = (oras*)q;
oras x = *px;
oras y = *py;
if (x.d < y.d)
{
return -1;
}
if (x.d > y.d)
{
return 1;
}
return 0;
}
int dist(oras x, oras y)
{
return (x.l + y.l + y.d - x.d);
}
int main()
{
in >> m >> n;
for (int i = 0; i < n; i++)
{
in >> v[i].d >> v[i].l;
}
in.close();
//sort(v, v + n, cmp);
qsort(v, n, sizeof(v[0]), comp);
int dc, dmax;
dc = dmax = dist(v[0], v[1]);
int u = 0;
for (int i = 2; i < n; i++)
{
if (dist(v[i-1], v[i]) > dist(v[u], v[i]))
{
u = i - 1;
}
dc = dist(v[u], v[i]);
if (dc > dmax)
{
dmax = dc;
}
}
out << dmax;
out.close();
return 0;
}