Pagini recente » Cod sursa (job #1680816) | Cod sursa (job #758873) | Cod sursa (job #3040072) | Cod sursa (job #2899663) | Cod sursa (job #431720)
Cod sursa(job #431720)
#include <fstream>
using namespace std;
ifstream f("orase.in");ofstream g("orase.out");
int M,N,L[50001],D[50001],dist[50001];
void read_data();
void solve();
void sort();
int main()
{
read_data();
solve();
return 0;
}
void read_data()
{
f >> M >> N;
for (int i = 1;i <= N; ++i)
f >> D[i] >> L[i];
}
void solve()
{
sort();
int max = 0,max_cautat = 0;
for (int i = 2 ; i <= N ; ++i)
{
max = max + D[i] - D[i - 1];
if (D[i] - D[i - 1] + L[i - 1] > max)
max = D[i] - D[i - 1] + L[i - 1];
dist[i] = max;
if (max + L[i] > max_cautat)
max_cautat = max + L[i];
}
g << max_cautat << endl;
}
void sort()
{
int cl,cd,j;
for (int i = 2 ; i <= N ; ++i)
{
cl = L[i];
cd = D[i];
for (j = i - 1 ; cd < D[j] && j > 0 ; --j)
{
D[j + 1] = D[j];
L[j + 1] = L[j];
}
L[j + 1] = cl;
D[j + 1] = cd;
}
}