基础题
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 10000;
int dp[MAXN];
int w[5] = {1,5,10,25,50};
int W;
void solve()
{
for(int i = 0; i < 5; ++i)
{
for(int j = w[i]; j <= W; ++j)
{
dp[j] += dp[j-w[i]];
}
}
}
int main()
{
while(scanf("%d",&W) != EOF)
{
memset(dp,0,sizeof(dp));
dp[0] = 1;
solve();
printf("%d\n",dp[W]);
}
return 0;
}