Pagini recente » Cod sursa (job #537475) | Cod sursa (job #1987859) | Cod sursa (job #524300) | Cod sursa (job #2514622) | Cod sursa (job #967646)
Cod sursa(job #967646)
#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
struct Oras {
int d, l;
};
int compar(const void *a, const void *b)
{
Oras oa = *(Oras*)a;
Oras ob = *(Oras*)b;
return oa.d - ob.d;
}
int main()
{
int n, m, i, max, dist;
Oras o[50000];
ifstream fin("orase.in");
ofstream fout("orase.out");
fin >> m >> n;
for(i = 0; i < n; i++)
{
fin >> o[i].d >> o[i].l;
}
qsort(o, n, sizeof(Oras), compar);
max = o[0].l - o[0].d; // distanta de la oras pana la punctul de pe dreapta - dist pe dreapta pana la origine
dist = 0; // distanta maxima intre 2 orase gasite
for(i = 1; i < n; i++)
{
if(dist < max + o[i].d + o[i].l)
{
dist = max + o[i].d + o[i].l;
}
if(o[i].l > o[i].d + max)
{
max = o[i].l - o[i].d;
}
}
fout << dist << endl;
return 0;
}