Pagini recente » Cod sursa (job #170179) | Istoria paginii runda/simulare-40-2 | Cod sursa (job #2909920) | Cod sursa (job #2804766) | Cod sursa (job #2011380)
#include <cstdio>
#include <algorithm>
const int MAXN = 5e4;
struct oras {
int d, l;
bool operator <(const oras &aux) const {
return d < aux.d;
}
} v[MAXN];
inline int max(int a, int b) {
return a > b ? a : b;
}
int main() {
int n, m, dmax, dfmax, dfind;
FILE *f = fopen("orase.in", "r");
fscanf(f, "%d%d", &m, &n);
for (int i = 0; i < n; ++i) {
fscanf(f, "%d%d", &v[i].d, &v[i].l);
}
fclose(f);
std::sort(v, v + n);
dmax = dfind = 0;
dfmax = v[0].l - v[0].d;
for (int i = 1; i < n; ++i) {
dmax = max(dmax, v[i].l + v[dfind].l + v[i].d - v[dfind].d);
if (v[i].l - v[i].d > dfmax) {
dfmax = v[i].l - v[i].d;
dfind = i;
}
}
f = fopen("orase.out", "w");
fprintf(f, "%d\n", dmax);
fclose(f);
return 0;
}