Pagini recente » Cod sursa (job #2467622) | Cod sursa (job #2352397) | Cod sursa (job #2586179) | Cod sursa (job #650462) | Cod sursa (job #1866344)
#include <stdio.h>
using namespace std;
#define MAXN 50001
int l[MAXN], str[MAXN], v[MAXN];
void myqsort( int begin, int end, int *v) {
int aux, b = begin, e = end,
pivot = v[(begin + end) / 2];
while ( b <= e ) {
while ( v[b] < pivot ) b++;
while ( v[e] > pivot ) e--;
if ( b <= e ) {
aux = l[b]; l[b] = l[e]; l[e] = aux;
aux = str[b]; str[b] = str[e]; str[e] = aux;
b++; e--;
}
}
if ( begin < e ) myqsort( begin, e ,v);
if ( b < end ) myqsort( b, end, v);
}
int main(){
FILE*fin=fopen("orase.in", "r");
FILE*fout=fopen("orase.out", "w");
int n, m, i, j, max;
fscanf(fin, "%d%d", &m, &n);
for(i=1; i<=n; i++)
fscanf(fin, "%d%d", &str[i], &l[i]);
myqsort(1, n, str);
j=1;
max=-1;
for(i=2; i<=n; i++){
if(str[i]+l[i]+l[j]-str[j]>max)
max=str[i]+l[i]+l[j]-str[j];
if(l[i]-str[i]>l[j]-str[j])
j=i;
}
fprintf(fout, "%d", max);
return 0;
}