{"trustable":true,"prependHtml":"\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\" type\u003d\"text/javascript\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cdiv class\u003d\"panel_content\"\u003eWe all love recursion! Don\u0027t we?\u003cbr\u003e\u003cbr\u003eConsider a three-parameter recursive function w(a, b, c):\u003cbr\u003e\u003cbr\u003eif a \u0026lt;\u003d 0 or b \u0026lt;\u003d 0 or c \u0026lt;\u003d 0, then w(a, b, c) returns:\u003cbr\u003e\u0026nbsp;\u0026nbsp;1\u003cbr\u003e\u003cbr\u003eif a \u0026gt; 20 or b \u0026gt; 20 or c \u0026gt; 20, then w(a, b, c) returns:\u003cbr\u003e\u0026nbsp;\u0026nbsp;w(20, 20, 20)\u003cbr\u003e\u003cbr\u003eif a \u0026lt; b and b \u0026lt; c, then w(a, b, c) returns:\u003cbr\u003e\u0026nbsp;\u0026nbsp;w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c)\u003cbr\u003e\u003cbr\u003eotherwise it returns:\u003cbr\u003e w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1)\u003cbr\u003e\u003cbr\u003e\u003cbr\u003eThis is an easy function to implement. The problem is, if implemented directly, for moderate values of a, b and c (for example, a \u003d 15, b \u003d 15, c \u003d 15), the program takes hours to run because of the massive recursion. \u003cbr\u003e\u003c/div\u003e"}},{"title":"Input","value":{"format":"HTML","content":"The input for your program will be a series of integer triples, one per line, until the end-of-file flag of -1 -1 -1. Using the above technique, you are to calculate w(a, b, c) efficiently and print the result."}},{"title":"Output","value":{"format":"HTML","content":"Print the value for w(a,b,c) for each triple."}},{"title":"Sample","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e1 1 1\r\n2 2 2\r\n10 4 6\r\n50 50 50\r\n-1 7 18\r\n-1 -1 -1\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003ew(1, 1, 1) \u003d 2\r\nw(2, 2, 2) \u003d 4\r\nw(10, 4, 6) \u003d 523\r\nw(50, 50, 50) \u003d 1048576\r\nw(-1, 7, 18) \u003d 1\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n"}}]}