Cod sursa(job #532629)

Utilizator razyelxrazyelx razyelx Data 12 februarie 2011 03:16:37
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream.h>
#include <algorithm>
#define M 1000001
#define N 50001

using namespace std;

ifstream fin("orase.in");
ofstream fout("orase.out");

int n,m,best = -int(2e9), maxj; // ds[N] distante strazi , dso[N] distanta strazi orase

struct dist{
	int ds;
	int dso;
}; 
dist d[N];

int cmp(const dist &x,const dist &y){
	return (x.ds < y.ds);
}

void read(){
	int i;
	
	fin>>m>>n;
	
	for (i=1;i<=n;i++)
		fin>>d[i].ds>>d[i].dso;
}

void solve(){
	int i;
	
	maxj = d[1].dso-d[1].ds;
	for (i=2; i<=n; i++){
		if ( d[i].ds + d[i].dso + maxj > best)
			best = d[i].ds + d[i].dso + maxj;
		
		if ( d[i].dso-d[i].ds > maxj )
			maxj = d[i].dso-d[i].ds;
	}	
}

int main(){

	read();
	
	sort(d+1,d+n+1,cmp);
	solve();
	
	fout<<best;
	return 0;
}