Pagini recente » Cod sursa (job #282257) | Cod sursa (job #281658) | Cod sursa (job #2065858) | Cod sursa (job #2136324) | Cod sursa (job #2589554)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("heavymetal.in");
ofstream fout("heavymetal.out");
struct concert{int sf;int dur;};
concert v[100005];
int dp[1005];
int n;
bool compar(concert x,concert y)
{
return x.sf<y.sf;
}
int main()
{
int a,i,maxim,j;
fin>>n;
for(i=1;i<=n;i++)
{
fin>>a>>v[i].sf;
v[i].dur=v[i].sf-a;
}
sort(v+1,v+n+1,compar);
maxim=0;
for(i=1;i<=n;i++)
{
if(dp[v[i].sf]==0&&maxim==0)
{
dp[v[i].sf]=v[i].dur;
maxim=v[i].dur;
}
else
{
if(dp[v[i].sf]==0)
{
j=0;
while(dp[v[i].sf-j-v[i].dur]==0)
j++;
dp[v[i].sf]=v[i].dur+dp[v[i].sf-j-v[i].dur];
if(dp[v[i].sf]>maxim)
maxim=dp[v[i].sf];
}
else
{
j=0;
while(dp[v[i].sf-j-v[i].dur]==0)
j++;
dp[v[i].sf]=min(dp[v[i].sf],dp[v[i].sf-j-v[i].dur]+v[i].dur);
if(dp[v[i].sf]>maxim)
maxim=dp[v[i].sf];
}
}
}
fout<<maxim;
return 0;
}