Pagini recente » Cod sursa (job #884155) | Cod sursa (job #2283037) | Cod sursa (job #2340188) | Cod sursa (job #166882) | Cod sursa (job #968873)
Cod sursa(job #968873)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
struct elem
{
int d;
int h;
}v[50005];
bool comp(const elem &a,const elem &b)
{
if(a.d<b.d)
return 1;
else if(a.d==b.d)
if(a.h<b.h)
return 1;
return 0;
}
bool operator<(const elem &a,const elem &b)
{
if((a.h-a.d)<(b.h-b.d))
return 1;
return 0;
}
int main()
{
ifstream cin("orase.in");
ofstream cout("orase.out");
int n,m,i;
cin>>m>>n;
for(i=0;i<n;i++)
cin>>v[i].d>>v[i].h;
sort(v,v+n,comp);
priority_queue<elem> coada;
coada.push(v[0]);
int sol=-1;
int aux;
for(i=1;i<n;i++)
{
aux=v[i].h+v[i].d-coada.top().d+coada.top().h;
if(aux>sol)
sol=aux;
coada.push(v[i]);
}
cout<<sol<<'\n';
cin.close();
cout.close();
return 0;
}