Pagini recente » Cod sursa (job #714982) | Cod sursa (job #231535) | Cod sursa (job #2835112) | Cod sursa (job #1142484) | Cod sursa (job #68851)
Cod sursa(job #68851)
#include <stdio.h>
int l[50000], d[50000];
void quick (int x[], int y[], int st, int dr)
{
int i, ii, j, jj, aux;
i=st; j=dr;
ii=0; jj=-1;
if (st<dr)
{ while (i<j)
{
if (x[i]>x[j])
{ aux=x[i]; x[i]=x[j]; x[j]=aux;
aux=y[i]; y[i]=y[j]; y[j]=aux;
aux=-ii; ii=-jj; jj=aux;
}
i=i+ii;
j=j+jj;
}
quick(x, y, st, i-1);
quick(x, y, i+1, dr);
}
}
int main() {
int nr, i, lung;
long long Dmax=0, Vmax;
FILE *f=fopen ("orase.in", "r");
FILE *g=fopen ("orase.out", "w");
fscanf (f, "%d %d", &lung, &nr);
for (i=0; i<nr; ++i)
fscanf (f, "%d %d", &d[i], &l[i]);
quick (d, l, 0, nr-1);
Vmax=l[0]-d[0];
for (i=1; i<nr; ++i) {
if (l[i-1]-d[i-1] > Vmax)
Vmax=l[i-1]-d[i-1];
if (l[i]+d[i]+Vmax > Dmax)
Dmax = l[i]+d[i]+Vmax;
}
fprintf (g, "%lld\n", Dmax);
fclose(f);
fclose(g);
return 0;
}