Pagini recente » Cod sursa (job #1025761) | Cod sursa (job #102677) | Cod sursa (job #2080611) | Cod sursa (job #2145545) | Cod sursa (job #619681)
Cod sursa(job #619681)
#include<fstream>
using namespace std;
typedef struct{ int d,l; }oras;
oras a[50003],k;
void quick_sort(int lb,int ub){
int i=lb,j=ub; oras p=a[(i+j)>>1];
do{
while(a[i].d<p.d ||(a[i].d==p.d && a[i].l<p.l))++i;
while(a[j].d>p.d ||(a[j].d==p.d && a[j].l>p.l))--j;
if(i<=j){ k=a[i]; a[i]=a[j]; a[j]=k; ++i; --j; }
}while(i<=j);
if(i<ub)quick_sort(i,ub);
if(j>lb)quick_sort(lb,j);
}
int main(void){
ifstream fin("orase.in");
ofstream fout("orase.out");
int m,n,i,suma=0,ormin;
fin>>m>>n;
for(i=1;i<=n;++i)fin>>a[i].d>>a[i].l; fin.close();
quick_sort(1,n); ormin=1;
for(i=2;i<=n;++i){
suma=max(suma,a[i].d-a[ormin].d+a[i].l+a[ormin].l);
if(a[i].l-a[i].d>a[ormin].l-a[ormin].d)ormin=i;
}
fout<<suma; fout.close();
return 0;
}