Pagini recente » Cod sursa (job #847381) | Cod sursa (job #2637709) | Cod sursa (job #1944659) | Cod sursa (job #87535) | Cod sursa (job #872354)
Cod sursa(job #872354)
#include <fstream>
#include <algorithm>
using namespace std;
int m, n, sol;
struct oras
{
int l, d;
};
oras a[50010];
inline void Read()
{
ifstream f ("orase.in");
f>>m>>n;
int i;
for (i=1; i<=n; i++)
f>>a[i].d>>a[i].l;
f.close();
}
inline bool cmp (const oras A, const oras B)
{
if (A.d == B.d)
return A.l < B.l;
return A.d < B.d;
}
inline void Solve()
{
sort(a+1, a+n+1, cmp);
// dist i, j = l[i] + d[i] + l[j] - d[j];
int maxj, i;
maxj = a[1].l - a[1].d;
sol = a[2].l + a[2].d + maxj;
for (i=3; i<=n; i++)
{
maxj = max(maxj, a[i-1].l - a[i-1].d);
sol = max(sol, a[i].l + a[i].d + maxj);
}
}
inline void Write()
{
ofstream g("orase.out");
g<<sol<<"\n";
g.close();
}
int main()
{
Read();
Solve();
Write();
return 0;
}