Mam takie zdanie: https://codeforces.com/problemset/problem/166/E
I rozwiązanie do niego: https://codeforces.com/blog/entry/4173
Z rozwiązania rozumiem, że można być w 4 miejscach i miejsca ABC nie różnią się niczym. Nie rozumiem co oznaczają te nazwy zmiennych i dlaczego to działa
int zD = 1;
int zABC = 0;
for (int i = 1; i <= n; i++) {
int nzD = zABC * 3LL % MOD;
int nzABC = (zABC * 2LL + zD) % MOD;
zD = nzD;
zABC = nzABC;
}
cout << zD;
Czy ktoś mógłby pomóc mi zrozumieć dlaczego to działa, co się w tym kodzie dzieje i napisać nazwy zmiennych na czytelniejsze ?