#include <stdio.h>
int func(int x, int y, int z)
{
static int counter = 0;
counter++;
if (x == 0 && y == 0 && z == 0)
return counter;
int result_x = 1, result_y = 1;
for (int i = 0; i < z; i++) result_x *= x;
for (int i = 0; i < z; i++) result_y *= y;
return result_x + result_y;
}
int main()
{
int i, x = 0;
for (i = 1; i < 4; i++) x = x + func(i, i, i);
printf("counter=%d\n", func
(0, 0, 0)); printf("%d %d\n", x
, func
(1, 2, 3)); printf("counter=%d\n", func
(0, 0, 0)); }
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgZnVuYyhpbnQgeCwgaW50IHksIGludCB6KQp7CiAgICBzdGF0aWMgaW50IGNvdW50ZXIgPSAwOwogICAgY291bnRlcisrOwoKICAgIGlmICh4ID09IDAgJiYgeSA9PSAwICYmIHogPT0gMCkKICAgICAgICByZXR1cm4gY291bnRlcjsKCiAgICBpbnQgcmVzdWx0X3ggPSAxLCByZXN1bHRfeSA9IDE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHo7IGkrKykgcmVzdWx0X3ggKj0geDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgejsgaSsrKSByZXN1bHRfeSAqPSB5OwoKICAgIHJldHVybiByZXN1bHRfeCArIHJlc3VsdF95Owp9CgppbnQgbWFpbigpCnsKICAgIGludCBpLCB4ID0gMDsKICAgIGZvciAoaSA9IDE7IGkgPCA0OyBpKyspIHggPSB4ICsgZnVuYyhpLCBpLCBpKTsKICAgIHByaW50ZigiY291bnRlcj0lZFxuIiwgZnVuYygwLCAwLCAwKSk7CiAgICBwcmludGYoIiVkICVkXG4iLCB4LCBmdW5jKDEsIDIsIDMpKTsKICAgIHByaW50ZigiY291bnRlcj0lZFxuIiwgZnVuYygwLCAwLCAwKSk7Cn0=