Pagini recente » Cod sursa (job #146085) | Cod sursa (job #896838) | Cod sursa (job #1510135) | Cod sursa (job #1558095) | Cod sursa (job #2046852)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("heavymetal.in");
ofstream g("heavymetal.out");
struct ceva
{
int x,y,d;
} v[100001];
int s[100001];
int comp(ceva A, ceva B)
{
if(A.x==B.x) return A.y<B.y;
else return A.x<B.x;
}
int Dmax;
int main()
{
int n,i,dmax,j,smax=0;
f>>n;
for(i=1; i<=n; i++)
{
f>>v[i].x>>v[i].y;
v[i].d=v[i].y-v[i].x;
}
sort(v+1,v+n+1,comp);
for(i=1; i<=n; i++)
{
for(j=1; j<=smax; j++)
if(s[j]>0&&s[j]<=v[i].x)
{
if(s[j+v[i].d]>v[i].y)
{
s[j+v[i].d]=v[i].y;
}
if(s[j+v[i].d]==0)
{
s[j+v[i].d]=v[i].y;
if(j+v[i].d>smax)smax =j+v[i].d;
}
}
if(s[v[i].d]>v[i].y||s[v[i].d]==0)
{
s[v[i].d]=v[i].y;
if(v[i].d>smax) smax=v[i].d;
}
}
g<<smax;
return 0;
}