#include<stdio.h> #include<string.h> const int LIMIT=200; int main(){ int dp[2][LIMIT+1]; int coins[8]={1,2,5,10,20,50,100,200}; int now,next; memset(dp,0,sizeof(dp)); dp[0][0]=1; for(int i=0;i<8;i++){ now=i%2; next=(i+1)%2; int coin=coins[i]; for(int j=0;j<=LIMIT;j++){ if(j<coin){ dp[next][j]=dp[now][j]; }else{ dp[next][j]=dp[now][j]+dp[next][j-coin]; } } } printf("%d",dp[next][200]); }