Cod sursa(job #373843)

Utilizator titusuTitus C titusu Data 15 decembrie 2009 11:23:58
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
using namespace std;
#include <fstream>
#include <iostream>
#include <algorithm>
#define LIM 50005
int D[LIM], L[LIM],s[LIM],n;

bool maiMic(int x,int y){
	if(D[x]<D[y])
		return true;
	if(D[x]==D[y])
		return L[x]<L[y];
	return false;
}

int main(){
	ifstream fin("orase.in");
	ofstream fout("orase.out");
	int i,m;
	fin>>m>>n;
	for(i=1;i<=n;i++){
		fin>>D[i]>>L[i];
		s[i]=i;
	}
	sort(s+1,s+n+1,maiMic);
	int imax=2, jmax=1, j=1;
	for(i=3;i<=n;i++){
		for(; j<i;j++)
			if(L[s[j]]-D[s[j]]>L[s[jmax]]-D[s[jmax]])
				jmax=j;
		if(D[s[i]]+L[s[i]]>D[s[imax]]+L[s[imax]])
			imax=i;
	}
	
	fout<<D[s[imax]]-D[s[jmax]]+L[s[imax]]+L[s[jmax]];
	return 0;
}