Pagini recente » Cod sursa (job #3259222) | Cod sursa (job #3155388) | Cod sursa (job #870352) | Cod sursa (job #329188) | Cod sursa (job #1618915)
#include <fstream>
using namespace std;
#define nmax 20002
#define gmax 75002
int d1[gmax],d2[gmax];
int n1[gmax],n2[gmax];
int gr[nmax],c[nmax];
int main()
{
ifstream f("ghiozdan.in");
ofstream g("ghiozdan.out");
int n,gre,i,j;
f>>n>>gre;
for(i=1;i<=n;i+=1)
{
f>>gr[i];
}
for(i=1;i<=n;i+=1)
{
for(j=1;j<=gre;j+=1)
{
d2[j]=d1[j];
n2[j]=n1[j];
if(gr[i]<=j)
{
if(d2[j]<d1[j-gr[i]]+gr[i])
{
d2[j]=d1[j-gr[i]]+gr[i];
n2[j]=n1[j-gr[i]]+1;
}
else
if(d2[j]==d1[j-gr[i]]+gr[i] and n2[j]>n1[j-gr[i]]+1)
n2[j]=n1[j-gr[i]]+1;
}
}
for(j=1;j<=gre;j+=1)
{
d1[j]=d2[j];
n1[j]=n2[j];
}
}
g<<d2[gre]<<" "<<n2[gre];
f.close();
g.close();
return 0;
}