Cod sursa(job #531869)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 10 februarie 2011 14:14:25
Problema Orase Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream.h>
#include <algorithm>
#define DIM 1000002
#define mx(a,b) (a>b?a:b)
long long N ,M ,i , V[DIM] , ok , j, maxim;


using namespace std;

struct pereche {
	int L;
	int D;
};

pereche P[DIM];
pereche aux;

int cmp(const pereche &a, const pereche &b) {
	return a.D<b.D;
}

int main()
{
	ifstream f("orase.in");
	ofstream g("orase.out");
	f>>N>>M;
	for(i=1;i<=N;i++){
		f>>P[i].D;
		f>>P[i].L;
	}

	
	sort(P+1, P+N+1, cmp);
	
//	V[i] = suma maxima de la un aoras din spate pana la strada 
	
	V[0]=0;
	
	for(i=1;i<=N;i++){
		
		V[i] = P[i].D-P[i-1].D + mx(V[i-1],P[i-1].L);
		
		if (V[i] + P[i].L > maxim)
			maxim = V[i] + P[i].L;
		
/*
		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;
}