Cod sursa(job #343359)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 25 august 2009 16:09:11
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#define DIM 1000000
int N,M,L[DIM],D[DIM],i,j,max,a[DIM],ind[DIM];

int compare(const void *a, const void *b)
{
	int aa = *(int*)a, bb = *(int*)b;
	return D[aa] - D[bb];
}

int maxim (int a, int b)
{
	if (a>b) return a;
		else return b;
}

int main()
{
	ifstream f("orase.in");
	ofstream g("orase.out");
	f>>M>>N;
	for (i=1;i<=N;++i)
		f>>D[i]>>L[i];
	f.close();
	for (i=1;i<=N;++i)
	   ind[i]=i;
	qsort (ind+1,N,sizeof(int),compare);
	a[1]=L[ind[1]]-D[ind[1]];
	for (i=2;i<=N;++i)
		{
		if (L[ind[i]]-D[ind[i]]>a[i-1]) a[i]=L[ind[i]]-D[ind[i]];
			else a[i]=a[i-1];
		}
	for (i=1;i<=N;++i)
		max=maxim(max,L[ind[i]]+D[ind[i]]+a[i]);
	g<<max;
	g.close();
	return 0;
}