Pagini recente » Cod sursa (job #2277881) | Diferente pentru home intre reviziile 706 si 705 | Cod sursa (job #826611) | Monitorul de evaluare | Cod sursa (job #183844)
Cod sursa(job #183844)
#include<stdio.h>
#include<algorithm>
using namespace std;
int val,u,mij,sol,v[100001],n,i,k,c,p;
struct heavy{int a,b;};
heavy s[100001],aux;
int cmp(heavy a,heavy b){
return a.b<b.b;
}
int main(){
FILE *f=fopen("heavymetal.in","r");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++){
fscanf(f,"%d %d",&s[i].a,&s[i].b);
}
fclose(f);
k=n+1;
sort(s+1,s+k,cmp);
for(i=1;i<=n;i++){
val=s[i].a;
v[i]=v[i-1];
p=0;
u=i;
while(p<=u){
mij=(p+u)/2;
if(s[mij].b<=val)
p=mij+1;
else
u=mij-1;
}
if( (v[u]+(s[i].b-s[i].a)) > v[i] )
v[i]=v[u]+(s[i].b-s[i].a);
}
FILE *g=fopen("heavymetal.out","w");
fprintf(g,"%d",v[n]);
fclose(g);
return 0;
}