Cod sursa(job #68164)

Utilizator Binary_FireFlorin Pogocsan Binary_Fire Data 26 iunie 2007 19:07:41
Problema Orase Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
#include <vector>
#include <algorithm>
#define fin  "orase.in"
#define fout "orase.out"

using namespace std;

struct nod { int d,len; };

int N,M,ret;
vector <nod> v;

bool cmp(nod a,nod b) {
	return a.d <= b.d;
}

int main() {
int i,bst,d1,d2;
nod tmp;
	freopen(fin,"r",stdin); freopen(fout,"w",stdout);

	scanf("%d%d",&M,&N);

	for (i=0;i<N;++i) {
		scanf("%d%d",&tmp.d,&tmp.len);
		if (tmp.d <= M) v.push_back(tmp);
	}

	sort(v.begin(),v.end(),cmp);

	bst=0; 

	for (i=1;i<(int)v.size();++i) {
		d1=v[i].len + v[i-1].len + abs(v[i].d - v[i-1].d);
	        d2=v[i].len + v[bst].len + abs(v[i].d - v[bst].d);
		if (d1 > ret) ret=d1;
		if (d2 > ret) ret=d2;
		if (d1 > d2) bst=i-1;
	}

	printf("%d\n",ret);

	return 0;
}