#include <stdio.h>
#define MaxN 100
int m[3][MaxN];
int f(int n)
{
int i;
m[0][1] = m[1][1] = m[2][1] = 1;
for (i = 2; i <= n; i++)
{
m[0][i] = m[0][i-1] + m[1][i-1] + m[2][i-1];
m[1][i] = m[0][i-1] + m[2][i-1];
m[2][i] = m[0][i-1] + m[1][i-1];
}
return m[0][n] + m[1][n] + m[2][n];
}
int main(int argc, char **argv)
{
printf("f(10) = %d\n", f
(10));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgojZGVmaW5lIE1heE4gMTAwCgppbnQgbVszXVtNYXhOXTsKCmludCBmKGludCBuKQp7CiAgICBpbnQgaTsKICAgIAogICAgbVswXVsxXSA9IG1bMV1bMV0gPSBtWzJdWzFdID0gMTsKICAgIAogICAgZm9yIChpID0gMjsgaSA8PSBuOyBpKyspCiAgICB7CiAgICAgICAgbVswXVtpXSA9IG1bMF1baS0xXSArIG1bMV1baS0xXSArIG1bMl1baS0xXTsKICAgICAgICBtWzFdW2ldID0gbVswXVtpLTFdICsgbVsyXVtpLTFdOwogICAgICAgIG1bMl1baV0gPSBtWzBdW2ktMV0gKyBtWzFdW2ktMV07CiAgICB9CiAgICAKICAgIHJldHVybiBtWzBdW25dICsgbVsxXVtuXSArIG1bMl1bbl07Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKewogICAgcHJpbnRmKCJmKDEwKSA9ICVkXG4iLCBmKDEwKSk7CiAgICAKICAgIHJldHVybiAwOwp9