#include <stdio.h>
int calc(int s, int l, int* c)
{
if (l < 2) return s % c[l] ? 0 : 1;
if (s < c[l]) return calc(s,l-1, c);
return calc(s,l-1,c) + calc(s-c[l],l,c);
}
int main(void) {
const int cents[] = {0, 1, 2, 5, 10};
const int size = sizeof(cents)/sizeof(cents[0]);
for (int s = 0; s < 10; s++)
printf("%d => %d\n", s
, calc
(s
, size
-1, cents
)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgY2FsYyhpbnQgcywgaW50IGwsIGludCogYykKewogIGlmIChsIDwgMikgcmV0dXJuIHMgJSBjW2xdID8gMCA6IDE7CiAgaWYgKHMgPCBjW2xdKSByZXR1cm4gY2FsYyhzLGwtMSwgYyk7CiAgcmV0dXJuIGNhbGMocyxsLTEsYykgKyBjYWxjKHMtY1tsXSxsLGMpOwp9CgppbnQgbWFpbih2b2lkKSB7Cgljb25zdCBpbnQgY2VudHNbXSA9IHswLCAxLCAyLCA1LCAxMH07Cgljb25zdCBpbnQgc2l6ZSA9IHNpemVvZihjZW50cykvc2l6ZW9mKGNlbnRzWzBdKTsKCWZvciAoaW50IHMgPSAwOyBzIDwgMTA7IHMrKykKCQlwcmludGYoIiVkID0+ICVkXG4iLCBzLCBjYWxjKHMsIHNpemUtMSwgY2VudHMpKTsKCXJldHVybiAwOwp9Cg==