Pagini recente » Cod sursa (job #1135811) | Cod sursa (job #2551635) | Cod sursa (job #231309) | Cod sursa (job #198356) | Cod sursa (job #829398)
Cod sursa(job #829398)
#include<stdio.h>
#include<algorithm>
using namespace std;
struct orasele{int x,y;};
orasele v[50001];
bool compar(const orasele A, const orasele B){
if(A.x==B.x)
return A.y<B.y;
return A.x<B.x;
}
int i,n,m,vscx,sc,scmax,vscy,pp;
int main(){
freopen("orase.in","r",stdin);
freopen("orase.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++){
scanf("%d%d",&v[i].x,&v[i].y);
}
sort(v+1,v+m+1,compar);
vscx=v[1].x;
sc=v[1].x;
vscy=v[1].y;
for(i=2;i<=n;i++){
pp=1;
if(v[i].y>sc){
sc=v[i].x;
vscx=v[i].x;
vscy=v[i].y;
pp=0;
}
sc+=(v[i].x-vscx);
if(sc+v[i].y+vscy>scmax&&pp==0){
scmax=sc+v[i].y+vscy;
}
if(sc+v[i].y>scmax&&pp==1){
scmax=sc+v[i].y;
}
}
printf("%d",scmax-1);
return 0;
}