Pagini recente » Cod sursa (job #3000143) | Cod sursa (job #1624881) | Cod sursa (job #1948957) | Cod sursa (job #1301765) | Cod sursa (job #93225)
Cod sursa(job #93225)
#include <stdio.h>
long obj[20010],n,g,sum[75010],nmin,gmax = 0,v[20010],k=0;
int main ()
{
long i,j;
freopen ("ghiozdan.in","r",stdin);
freopen ("ghiozdan.out","w",stdout);
scanf ("%ld",&n);
scanf ("%ld",&g);
for (i = 1;i <= n; ++i)
scanf("%ld",&obj[i]);
/* for (i = 1; i <= n; ++i)
printf("%ld ",obj[i]);
*/
for (i = 1;i <= g; ++i)
sum[i] = 2000000000;
sum[0] = 0;
for (i = 1;i <= n; ++i)
for (j = g;j >= 0; --j)
if (sum[j] != 2000000000 && j+obj[i] <= g) // != 2000000000
if (sum[j + obj[i]] > sum[j] + 1)
{
sum[j + obj[i]] = sum[j] + 1;
if (gmax < j + obj[i])
{
nmin = sum[j + obj[i]];
gmax = j + obj[i];
}
if (gmax == j + obj[i])
if (nmin > sum[j + obj[i]])
nmin = sum[j + obj[i]];
}
/* int gasit = 0;
i = g;
while (!gasit)
{
if (sum[i] != 2000000000)
gasit = 1;
else
i--;
}
*/
printf ("%ld %ld",gmax,nmin);
return 0;
}