Cod sursa(job #1972144)

Utilizator mihai2003LLL LLL mihai2003 Data 22 aprilie 2017 09:39:52
Problema Heavy metal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <fstream>
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
ifstream in("heavymetal.in");
ofstream out("heavymetal.out");
struct interval{
	int x,y;
};
interval v[100005];
int sol[100005];
bool cmp(interval a,interval b){
	if(a.y==b.y)
		return (a.x<b.x);
	return (a.y<b.y);
}
int main() {
	int n,x,j,aux;
	in>>n;
	for(int i=1;i<=n;i++)
		in>>v[i].x>>v[i].y;
   sort(v+1,v+n+1,cmp);
   x=v[n].y;
   out<<x<<'\n';
   j=1;
   for(int i=1;i<=x;i++){
       sol[i]=sol[i-1];
       while(i==v[j].y){
           aux=sol[v[j].x]+v[j].y-v[j].x;
           if(aux>sol[i])
               sol[i]=aux;
           j++;
       }
   }
   out<<sol[x];
   return 0;
}