Cod sursa(job #67509)

Utilizator bogdan2412Bogdan-Cristian Tataroiu bogdan2412 Data 25 iunie 2007 10:45:09
Problema Orase Scor 100
Compilator cpp Status done
Runda preONI 2007, Runda Finala, Clasa a 9-a si gimnaziu Marime 0.71 kb
#include <stdio.h>

#define MAXM 1000005

int M, N;
int max1[MAXM], max2[MAXM];

int main()
{
	freopen("orase.in", "rt", stdin);
	freopen("orase.out", "wt", stdout);

	scanf("%d %d", &M, &N);
	for (int i = 0; i <= M; i++)
		max1[i] = max2[i] = -0x3f3f3f3f;

	for (int i = 0; i < N; i++)
	{
		int D, L;
		scanf("%d %d", &D, &L);

		if (L > max1[D])
			max2[D] = max1[D],
			max1[D] = L;
		else
			if (L > max2[D])
				max2[D] = L;
	}

	int MAX = -0x3f3f3f3f, MAXcur = -0x3f3f3f3f;

	for (int i = 0; i <= M; i++)
	{
		if (max1[i] + max2[i] > MAX)
			MAX = max1[i] + max2[i];
		MAXcur++;
		if (MAXcur + max1[i] > MAX)
			MAX = MAXcur + max1[i];

		if (max1[i] > MAXcur)
			MAXcur = max1[i];
	}

	printf("%d\n", MAX);

	return 0;
}