Pagini recente » Cod sursa (job #1631316) | Cod sursa (job #532623)
Cod sursa(job #532623)
#include <fstream.h>
#define M 1000001
#define N 50001
ifstream fin("orase.in");
ofstream fout("orase.out");
int ds[N],dso[N],distMax[N],n,m,best = -int(2e9), maxj = 0; // ds[N] distante strazi , dso[N] distanta strazi orase
void read(){
int i;
fin>>m>>n;
for (i=1;i<=n;i++)
fin>>ds[i]>>dso[i];
}
int absolut(int x, int y){
if ( x > y)
return x-y;
return y-x;
}
void solve(){
int i;
for (i=1; i<=n; i++){
if ( ds[i] + dso[i] + maxj > best)
best = ds[i] + dso[i] + maxj;
if ( absolut(ds[i],dso[i]) > maxj )
maxj = absolut(ds[i],dso[i]);
}
}
void qsort(int s, int d){
int i=s,j=d,pi=0,pj=1,aux;
if (s<d){
while(i<j){
if (ds[i] > ds[j]){
aux = ds[i];
ds[i] = ds[j];
ds[j] = aux;
aux = dso[i];
dso[i] = dso[j];
dso[j] = aux;
aux = pi;
pi = pj;
pj = aux;
}
i += pi; j -= pj;
}
qsort(s,i-1);
qsort(m+1,d);
}
}
int main(){
read();
qsort(1,n);
solve();
//for (int i=1;i<=n;i++)
// fout<<ds[i]<<","<<dso[i]<<" ";
fout<<best;
return 0;
}