完全揹包
#include <stdio.h>
#include <memory.h>
int dp[320];
int n,c;
int coins[10];
int main() {
int i,j;
while (scanf("%d",&n)!=EOF) {
scanf("%d",&c);
for (i=0;i<c;i++)
scanf("%d",&coins[i]);
memset(dp,0,sizeof(dp));
dp[0]=1;
for (i=0;i<c;i++) {
for (j=coins[i];j<=n;j++)
dp[j]+=dp[j-coins[i]];
}
printf("%d\n", dp[n]);
}
return 0;
}