Cod sursa(job #214931)
Utilizator | Data | 16 octombrie 2008 22:25:49 | |
---|---|---|---|
Problema | Heavy metal | Scor | 40 |
Compilator | c | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <stdio.h>
int n,i,j,Best[100000],b[100000],a[100000],maxim;
int max(int a,int b)
{
if (a>b)
return a;
else
return b;
}
int main()
{
freopen("heavymetal.in","rt",stdin);
scanf("%d", &n);
for (i=1;i<=n;++i)
{
scanf("%d %d", &a[i], &b[i]);
maxim=max(maxim,b[i]);
}
for (i=1;i<=maxim;++i)
{
Best[i]=Best[i-1];
for (j=1;j<=maxim;++j)
if (b[j]==i)
Best[i] = max(Best[i],Best[a[j]]+(b[j]-a[j]));
}
freopen("heavymetal.out","wt",stdout);
printf("%d", Best[maxim]);
return 0;
}