Cod sursa(job #522221)

Utilizator alinaelenaFMI Colceag Alina alinaelena Data 14 ianuarie 2011 16:20:27
Problema Heavy metal Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<stdio.h>
#include<algorithm>
using namespace std;
struct formatie{ int inc; int sf;};
formatie f[100010];
int n,t[100010];
int ma;
void read()
{
	int i;
	freopen("heavymetal.in","r", stdin);
	freopen("heavymetal.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;++i)
		scanf("%d %d",&f[i].inc,&f[i].sf);
	}

bool cmp (formatie a,formatie b)
{
	return a.sf<b.sf;
}

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

void prelucrare()
{
	int last,i;
	ma=f[n].sf;
	last=1;
	for(i=1;i<=ma;++i)
	{
		t[i]=t[i-1];
		while(f[last].sf==i)
		{
			t[i]=maxx(t[i],t[f[last].inc]+i-f[last].inc);
			last++;
		}
	}
	
}

int main()
{
	read();
	sort(f+1,f+n+1,cmp);
	prelucrare();
	printf("%d\n",t[ma]);
	
}