Generated by Cython 0.10.3 on Thu Apr 9 16:52:02 2009
Raw output: _Users_dan__sage_sage_notebook_worksheets_skkudemo_2_code_sage4_spyx_0.c
1:
#if PY_MAJOR_VERSION < 3
return;
#else
return __pyx_m;
#endif
__pyx_L1_error:;
__Pyx_AddTraceback("_Users_dan__sage_sage_notebook_worksheets_skkudemo_2_code_sage4_spyx_0");
#if PY_MAJOR_VERSION >= 3
return NULL;
#endif
}
2: include "interrupt.pxi" # ctrl-c interrupt block support
3: include "stdsage.pxi" # ctrl-c interrupt block support
4:
5: include "cdefs.pxi"
6: def cybuying(coins, total):
static PyObject *__pyx_pf_70_Users_dan__sage_sage_notebook_worksheets_skkudemo_2_code_sage4_spyx_0_cybuying(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_70_Users_dan__sage_sage_notebook_worksheets_skkudemo_2_code_sage4_spyx_0_cybuying[] = "File: _Users_dan__sage_sage_notebook_worksheets_skkudemo_2_code_sage4_spyx_0.pyx (starting at line 6)"; static PyObject *__pyx_pf_70_Users_dan__sage_sage_notebook_worksheets_skkudemo_2_code_sage4_spyx_0_cybuying(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_coins = 0; PyObject *__pyx_v_total = 0; int __pyx_v_i; int __pyx_v_j; int __pyx_v_k; int __pyx_v_coin; PyObject *__pyx_v_vlist; PyObject *__pyx_v__; PyObject *__pyx_r; static PyObject **__pyx_pyargnames[] = {&__pyx_kp_coins,&__pyx_kp_total,0}; __pyx_self = __pyx_self; if (unlikely(__pyx_kwds)) { PyObject* values[2] = {0,0}; Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_coins); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_total); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("cybuying", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "cybuying") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_coins = values[0]; __pyx_v_total = values[1]; } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { __pyx_v_coins = PyTuple_GET_ITEM(__pyx_args, 0); __pyx_v_total = PyTuple_GET_ITEM(__pyx_args, 1); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("cybuying", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_Users_dan__sage_sage_notebook_worksheets_skkudemo_2_code_sage4_spyx_0.cybuying"); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_v_vlist = Py_None; Py_INCREF(Py_None); __pyx_v__ = Py_None; Py_INCREF(Py_None);
7: cdef int i, j, k, coin
8: vlist = [ [0] * len(coins) for _ in range(total + 1) ]
__pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_3 = __pyx_v_total; Py_INCREF(__pyx_3); __pyx_t_1 = PyNumber_Add(__pyx_3, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_3); __pyx_3 = 0; __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} PyTuple_SET_ITEM(__pyx_3, 0, __pyx_t_1); __pyx_t_1 = 0; __pyx_4 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0; if (PyList_CheckExact(__pyx_4) || PyTuple_CheckExact(__pyx_4)) { __pyx_2 = 0; __pyx_3 = __pyx_4; Py_INCREF(__pyx_3); } else { __pyx_2 = -1; __pyx_3 = PyObject_GetIter(__pyx_4); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } Py_DECREF(__pyx_4); __pyx_4 = 0; for (;;) { if (likely(PyList_CheckExact(__pyx_3))) { if (__pyx_2 >= PyList_GET_SIZE(__pyx_3)) break; __pyx_4 = PyList_GET_ITEM(__pyx_3, __pyx_2); Py_INCREF(__pyx_4); __pyx_2++; } else if (likely(PyTuple_CheckExact(__pyx_3))) { if (__pyx_2 >= PyTuple_GET_SIZE(__pyx_3)) break; __pyx_4 = PyTuple_GET_ITEM(__pyx_3, __pyx_2); Py_INCREF(__pyx_4); __pyx_2++; } else { __pyx_4 = PyIter_Next(__pyx_3); if (!__pyx_4) { if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} break; } } Py_DECREF(__pyx_v__); __pyx_v__ = __pyx_4; __pyx_4 = 0; __pyx_4 = PyList_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_4, 0, __pyx_int_0); __pyx_5 = PyObject_Length(__pyx_v_coins); if (unlikely(__pyx_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_6 = PyInt_FromSsize_t(__pyx_5); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_t_1 = PyNumber_Multiply(((PyObject *)__pyx_4), __pyx_6); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0; Py_DECREF(__pyx_6); __pyx_6 = 0; __pyx_7 = PyList_Append(__pyx_1, (PyObject*)__pyx_t_1); if (unlikely(__pyx_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; } Py_DECREF(__pyx_3); __pyx_3 = 0; Py_DECREF(__pyx_v_vlist); __pyx_v_vlist = ((PyObject *)__pyx_1); __pyx_1 = 0;
9: for i in range(total + 1):
__pyx_4 = __pyx_v_total; Py_INCREF(__pyx_4); __pyx_t_1 = PyNumber_Add(__pyx_4, __pyx_int_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_4); __pyx_4 = 0; __pyx_7 = __pyx_PyInt_int(__pyx_t_1); if (unlikely((__pyx_7 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_t_1); __pyx_t_1 = 0; for (__pyx_v_i = 0; __pyx_v_i < __pyx_7; __pyx_v_i+=1) {
10: for j, coin in enumerate(coins):
__pyx_6 = PyTuple_New(1); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_INCREF(__pyx_v_coins); PyTuple_SET_ITEM(__pyx_6, 0, __pyx_v_coins); __pyx_3 = PyObject_Call(__pyx_builtin_enumerate, ((PyObject *)__pyx_6), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0; if (PyList_CheckExact(__pyx_3) || PyTuple_CheckExact(__pyx_3)) { __pyx_5 = 0; __pyx_1 = __pyx_3; Py_INCREF(__pyx_1); } else { __pyx_5 = -1; __pyx_1 = PyObject_GetIter(__pyx_3); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} } Py_DECREF(__pyx_3); __pyx_3 = 0; for (;;) { if (likely(PyList_CheckExact(__pyx_1))) { if (__pyx_5 >= PyList_GET_SIZE(__pyx_1)) break; __pyx_4 = PyList_GET_ITEM(__pyx_1, __pyx_5); Py_INCREF(__pyx_4); __pyx_5++; } else if (likely(PyTuple_CheckExact(__pyx_1))) { if (__pyx_5 >= PyTuple_GET_SIZE(__pyx_1)) break; __pyx_4 = PyTuple_GET_ITEM(__pyx_1, __pyx_5); Py_INCREF(__pyx_4); __pyx_5++; } else { __pyx_4 = PyIter_Next(__pyx_1); if (!__pyx_4) { if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} break; } } if (PyTuple_CheckExact(__pyx_4) && PyTuple_GET_SIZE(__pyx_4) == 2) { PyObject* tuple = __pyx_4; __pyx_3 = PyTuple_GET_ITEM(tuple, 0); Py_INCREF(__pyx_3); __pyx_8 = __pyx_PyInt_int(__pyx_3); if (unlikely((__pyx_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_3); __pyx_3 = 0; __pyx_v_j = __pyx_8; __pyx_3 = PyTuple_GET_ITEM(tuple, 1); Py_INCREF(__pyx_3); __pyx_8 = __pyx_PyInt_int(__pyx_3); if (unlikely((__pyx_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_3); __pyx_3 = 0; __pyx_v_coin = __pyx_8; Py_DECREF(__pyx_4); __pyx_4 = 0; } else { __pyx_6 = PyObject_GetIter(__pyx_4); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_4); __pyx_4 = 0; __pyx_3 = __Pyx_UnpackItem(__pyx_6, 0); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_8 = __pyx_PyInt_int(__pyx_3); if (unlikely((__pyx_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_3); __pyx_3 = 0; __pyx_v_j = __pyx_8; __pyx_3 = __Pyx_UnpackItem(__pyx_6, 1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_8 = __pyx_PyInt_int(__pyx_3); if (unlikely((__pyx_8 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_3); __pyx_3 = 0; __pyx_v_coin = __pyx_8; if (__Pyx_EndUnpack(__pyx_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_6); __pyx_6 = 0; }
11: if j == 0:
__pyx_9 = (__pyx_v_j == 0); if (__pyx_9) {
12: if i % coin == 0:
__pyx_9 = ((__pyx_v_i % __pyx_v_coin) == 0); if (__pyx_9) {
13: vlist[i][j] = 1
__pyx_3 = __Pyx_GetItemInt(__pyx_v_vlist, __pyx_v_i, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;} if (__Pyx_SetItemInt(__pyx_3, __pyx_v_j, __pyx_int_1, 0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_3); __pyx_3 = 0; goto __pyx_L13; } __pyx_L13:; goto __pyx_L12; } /*else*/ {
14: else:
15: k = 0
__pyx_v_k = 0;
16: while i - k >= 0:
while (1) { __pyx_9 = ((__pyx_v_i - __pyx_v_k) >= 0); if (!__pyx_9) break;
17: vlist[i][j] += vlist[i - k][j - 1]
__pyx_8 = (__pyx_v_i - __pyx_v_k); __pyx_6 = __Pyx_GetItemInt(__pyx_v_vlist, __pyx_8, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_10 = (__pyx_v_j - 1); __pyx_3 = __Pyx_GetItemInt(__pyx_6, __pyx_10, 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_6); __pyx_6 = 0; __pyx_6 = __Pyx_GetItemInt(__pyx_v_vlist, __pyx_v_i, 0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_11 = __Pyx_GetItemInt(__pyx_6, __pyx_v_j, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_4 = PyNumber_InPlaceAdd(__pyx_11, __pyx_3); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_3); __pyx_3 = 0; Py_DECREF(__pyx_11); __pyx_11 = 0; if (__Pyx_SetItemInt(__pyx_6, __pyx_v_j, __pyx_4, 0) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_4); __pyx_4 = 0; Py_DECREF(__pyx_6); __pyx_6 = 0;
18: k += coin
__pyx_v_k += __pyx_v_coin;
}
}
__pyx_L12:;
}
Py_DECREF(__pyx_1); __pyx_1 = 0;
}
19: return vlist[total][len(coins) - 1]
__pyx_3 = PyObject_GetItem(__pyx_v_vlist, __pyx_v_total); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_2 = PyObject_Length(__pyx_v_coins); if (unlikely(__pyx_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_5 = (__pyx_2 - 1); __pyx_11 = __Pyx_GetItemInt(__pyx_3, __pyx_5, 0); if (!__pyx_11) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;} Py_DECREF(__pyx_3); __pyx_3 = 0; __pyx_r = __pyx_11; __pyx_11 = 0; goto __pyx_L0; __pyx_r = Py_None; Py_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; Py_XDECREF(__pyx_1); Py_XDECREF(__pyx_3); Py_XDECREF(__pyx_4); Py_XDECREF(__pyx_6); Py_XDECREF(__pyx_11); __Pyx_AddTraceback("_Users_dan__sage_sage_notebook_worksheets_skkudemo_2_code_sage4_spyx_0.cybuying"); __pyx_r = NULL; __pyx_L0:; Py_DECREF(__pyx_v_vlist); Py_DECREF(__pyx_v__); return __pyx_r; }