Pagini recente » Cod sursa (job #2359540) | Cod sursa (job #1425715) | Cod sursa (job #1817974) | Cod sursa (job #2884130) | Cod sursa (job #612871)
Cod sursa(job #612871)
#include <stdio.h>
#include <deque>
#include <algorithm>
#define NMax 50010
using namespace std;
const char IN[]="orase.in",OUT[]="orase.out";
struct oras{
int d,l;
bool operator<(oras const &b) const{
return d<b.d;
}
} a[NMax];
int N,M,S;
deque<int> d;
void add(int x)
{
while ( !d.empty() && x>d.front()) d.pop_front();
d.push_back(x);
}
int main()
{
int i,R=-1;
freopen(IN,"r",stdin);
scanf("%d%d",&M,&N);
for (i=1;i<=N;++i) scanf("%d%d",&a[i].d,&a[i].l);
fclose(stdin);
sort(a+1,a+N+1);
for (i=1;i<=N;++i)
{
S+=a[i].d-a[i-1].d;
if (!d.empty()) R=a[i].l+S+d.front();
add(a[i].l-S);
}
freopen(OUT,"w",stdout);
printf("%d\n",R);
fclose(stdout);
return 0;
}