Pagini recente » Cod sursa (job #2076439) | Cod sursa (job #123736) | Cod sursa (job #3223521) | Cod sursa (job #859932) | Cod sursa (job #681231)
Cod sursa(job #681231)
#include<fstream>
using namespace std;
ofstream out("energii.out");
int n,emax,q[1001],c[1001],cmax[5001],uz[5001][1001];
void citire();
void dinamic();
int main()
{
citire();
dinamic();
if(cmax[emax]==-1)
out<<-1;
else
out<<cmax[emax];
return 0;
}
void citire()
{
ifstream in("energii.in");
in>>n;
in>>emax;
int i;
for(i=1;i<=n;i++)
in>>q[i]>>c[i];
}
void dinamic()
{
int i,k,etl;
for(etl=1;etl<=emax;etl++)
cmax[etl]=-1;
for(etl=1;etl<=emax;etl++)
for(i=1;i<=n;i++)
if(q[i]<=etl&&!uz[etl-q[i]][i]&&cmax[etl-q[i]]!=-1)
if(cmax[etl]<c[i]+cmax[etl-q[i]])
{
cmax[etl]=c[i]+cmax[etl-q[i]];
for(k=1;k<=n;k++)
uz[etl][k]=uz[etl-q[i]][k];
uz[etl][i]=1;
}
}