Cod sursa(job #531856)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 10 februarie 2011 13:56:41
Problema Orase Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream.h>
#define mx(a,b) (a>b?a:b)
long long N ,M ,i , D[1000000] , L[1000000] , aux , V[1000000] , ok , j, maxim;
int main()
{
	ifstream f("orase.in");
	ofstream g("orase.out");
	f>>N>>M;
	for(i=1;i<=N;i++){
		f>>D[i];
		f>>L[i];
	}
	for(i=1;i<N;i++){
		for(j=i+1;j<=N;j++){
			if(D[i]>D[j]){
				aux=D[i];
				D[i]=D[j];
				D[j]=aux;
				aux=L[i];
				L[i]=L[j];
				L[j]=aux;
			}
		}
	}
	
	
//	V[i] = suma maxima de la un aoras din spate pana la strada 
	
	V[1]=D[1];
	for(i=2;i<=N;i++){
		
		V[i] = D[i]-D[i-1] + mx(V[i-1],L[i-1]);
		
		if (V[i] + L[i] > maxim)
			maxim = V[i] + L[i];
		
/*
		ok=0;
		if(V[i-1]+D[i]-D[i-1]>=D[i]-D[i-1]+L[i-1]){
			V[i]=V[i-1]+D[i]-D[i-1];
		}
		else{
			V[i]=D[i]-D[i-1]+L[i-1];
			ok=1;
		}
		if(V[i]+L[i]>max&&ok==1){
			max=V[i];			
		}
*/
	}
	g<<maxim;
	f.close();
	g.close();
	return 0;
}