Cod sursa(job #460948)

Utilizator cescC.Fabregas cesc Data 4 iunie 2010 19:54:53
Problema Orase Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include <fstream>
#define INFILE "orase.in"
#define OUTFILE "orase.out"
#define max_N 51000

using namespace std;

ifstream fin(INFILE);
ofstream fout(OUTFILE);

long int M, N, D[max_N], L[max_N], j, maxim1, maxim2, i, poz, maxim, calc[max_N];

int main()
{
	fin >> M >> N;
	for(i = 1; i <= N; i ++)
	{
		fin >> D[i] >> L[i];
		D[i] = D[i] * 100000 + L[i];
	}
	sort(D + 1, D + N + 1);
	for(i = 1; i <= N; i ++)
	{
		L[i] = D[i] % 100000 ;
		D[i] = D[i] / 100000 ;
	}
	
	for(i = 1; i <= N; i ++)
		calc[i] = abs(L[j] - D[j]);
	
	j = 1; i = 2;
	for(int k = 3; k <= N; k ++)
	{
		int ci = i, cj = j;
		if(L[k] + D[k] + abs(L[cj] - D[cj]) > maxim && k!=cj)
		{
			maxim = L[k] + D[k] + abs(L[cj] - D[cj]);
			i = k;
		}
		if(L[k] + D[k] + abs(L[ci] - D[ci]) > maxim && k!=ci)
		{	
			maxim = L[k] + D[k] + abs(L[ci] - D[ci]);
			i = k;
			j = ci;
		}
			
		
	}
	

	fout << maxim;
	return 0;
}