#include <stdio.h>
#include <stdint.h>
#define ARR_L 11
#define INS_P (arr[0])
#define MOD_L(a) ((a) % ARR_L)
#define INS_P_M (MOD_L(INS_P))
#define ARR_ACS(a) (arr[MOD_L(a)]) //access to arr
void foo (uint8_t *arr)
{
if (ARR_ACS(0) == 0)
{
ARR_ACS(1) += ARR_ACS(2);
ARR_ACS(0) = 1;
}
else
{
ARR_ACS(2) += ARR_ACS(1);
ARR_ACS(0) = 0;
}
}
int main(void) {
uint8_t arr[ARR_L] = {1,1,1,0,0,0,0,0,0,0,0};
for (size_t a = 0; a < 13; a++)
{
foo(arr);
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRpbnQuaD4KCiNkZWZpbmUgQVJSX0wgMTEKI2RlZmluZSBJTlNfUCAoYXJyWzBdKQojZGVmaW5lIE1PRF9MKGEpICgoYSkgJSBBUlJfTCkKI2RlZmluZSBJTlNfUF9NIChNT0RfTChJTlNfUCkpCiNkZWZpbmUgQVJSX0FDUyhhKSAoYXJyW01PRF9MKGEpXSkgLy9hY2Nlc3MgdG8gYXJyCgoKdm9pZCBmb28gKHVpbnQ4X3QgKmFycikKewogIGlmIChBUlJfQUNTKDApID09IDApCiAgewogICAgcHJpbnRmKCIldSAiLCBBUlJfQUNTKDEpKTsKICAgIEFSUl9BQ1MoMSkgKz0gQVJSX0FDUygyKTsKICAgIEFSUl9BQ1MoMCkgPSAxOwogIH0KICBlbHNlCiAgewogICAgcHJpbnRmKCIldSAiLCBBUlJfQUNTKDIpKTsKICAgIEFSUl9BQ1MoMikgKz0gQVJSX0FDUygxKTsKICAgIEFSUl9BQ1MoMCkgPSAwOwogIH0KCn0KCmludCBtYWluKHZvaWQpIHsKICB1aW50OF90IGFycltBUlJfTF0gPSB7MSwxLDEsMCwwLDAsMCwwLDAsMCwwfTsKICBmb3IgKHNpemVfdCBhID0gMDsgYSA8IDEzOyBhKyspCiAgewogICAgZm9vKGFycik7CiAgfQogIHJldHVybiAwOwp9