Pagini recente » Cod sursa (job #368331) | Cod sursa (job #946572) | Cod sursa (job #3208980) | Cod sursa (job #9481) | Cod sursa (job #36479)
Cod sursa(job #36479)
#include<stdio.h>
int n,m,a[200000000],i,j,max,x;
int MAX(int x,int y)
{return x>y?x:y;}
int main()
{freopen("oite.in","r",stdin);
freopen("oite.out","w",stdout);
scanf("%d %d",&n,&m);
if(m>200000000) return 0;
for(;n;n--)
{scanf("%d",&x);
for(j=max;j>=0;j--)
if(a[j]&&j+x<=m) {a[j+x]+=a[j];max=MAX(max,j+x);}
else if(j==0&&x<=m) {a[j+x]++;max=MAX(max,x);} }
printf("%d",a[m]);
fclose(stdout);
return 0;}