Cod sursa(job #416258)

Utilizator marian77ivan marian liviu marian77 Data 12 martie 2010 13:46:01
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
struct oras {
	int l,d;
} v[50001],aux;
int functie (oras a,oras b){
	return a.d<=b.d;
}
int m,n,i,j,maxx,p;
int main() {
	FILE *f=fopen("orase.in","r");
	FILE *g=fopen("orase.out","w");
	fscanf(f,"%d%d",&m,&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%d%d",&v[i].d,&v[i].l);
	sort(v+1,v+n+1,functie);
	/*for(i=1;i<=n;i++)
		for(j=i+1;j<=n;j++)
			if(v[i].d>v[j].d||(v[i].d==v[j].d&&v[i].l>v[j].l)) {
				aux=v[i];
				v[i]=v[j];
				v[j]=aux;
			}*/
	p=1;maxx=0;
	for(i=2;i<=n;i++){
		 if(maxx<v[i].d-v[p].d+v[i].l+v[p].l)
		 			maxx= v[i].d-v[p].d+v[i].l+v[p].l;
		if(v[i].l-v[i].d>v[p].l-v[p].d) 
			p=i;
		 }
	fprintf(g,"%d",maxx);
	return 0;
}