Pagini recente » Cod sursa (job #676807) | Cod sursa (job #2102808) | Cod sursa (job #159289) | Cod sursa (job #675075) | Cod sursa (job #2560808)
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
struct ura{
int in, sf;
};
ura v[100001];
int sol[100000];
bool cmp(ura a, ura b) {
if(a.sf<b.sf)
return true;
if(a.sf==b.sf && a.in>b.in)
return true;
return false;
}
int main() {
FILE *fin, *fout;
int n, i, j;
fin=fopen("heavymetal.in","r");
fout=fopen("heavymetal.out","w");
fscanf(fin, "%d",&n);
for(i=1;i<=n;i++)
fscanf(fin, "%d%d",&v[i].in,&v[i].sf);
sort(v+1,v+n+1,cmp);
j=1;
for(i=1;i<=v[n].sf;i++) {
sol[i]=sol[i-1];
while(v[j].sf==i) {
if(sol[v[j].in]+v[j].sf-v[j].in>sol[i])
sol[i]=sol[v[j].in]+v[j].sf-v[j].in;
j++;
}
}
fprintf(fout, "%d",sol[v[n].sf]);
fclose( fin );
fclose( fout );
return 0;
}