#include<stdio.h>
enum state
{
STATE_00=0,
STATE_01,
STATE_02,
STATE_03
};
int f1(int s) { return s==0?STATE_01:STATE_02;}
int f2(int s) { return s==0?STATE_03:STATE_00;}
int f3(int s) { return s==0?STATE_00:STATE_03;}
int f4(int s) { return STATE_03;}
int main()
{
int(*func[4])(int);
func [0]= f1;
func [1]= f2;
func [2]= f3;
func [3]= f4;
int input[10]={1,0,0,1,1,0,0,1,1,0};
enum state s = STATE_00;
for(int i=0;i<10;i++) {s=func[s](input[i]);}
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KCmVudW0gc3RhdGUKewoJU1RBVEVfMDA9MCwKCVNUQVRFXzAxLAoJU1RBVEVfMDIsCglTVEFURV8wMwp9OwoKaW50IGYxKGludCBzKSB7IHJldHVybiBzPT0wP1NUQVRFXzAxOlNUQVRFXzAyO30KaW50IGYyKGludCBzKSB7IHJldHVybiBzPT0wP1NUQVRFXzAzOlNUQVRFXzAwO30KaW50IGYzKGludCBzKSB7IHJldHVybiBzPT0wP1NUQVRFXzAwOlNUQVRFXzAzO30KaW50IGY0KGludCBzKSB7IHJldHVybiBTVEFURV8wMzt9CgppbnQgbWFpbigpCnsKCWludCgqZnVuY1s0XSkoaW50KTsKCWZ1bmMgWzBdPSBmMTsKCWZ1bmMgWzFdPSBmMjsKCWZ1bmMgWzJdPSBmMzsKCWZ1bmMgWzNdPSBmNDsKCQoJaW50IGlucHV0WzEwXT17MSwwLDAsMSwxLDAsMCwxLDEsMH07CgllbnVtIHN0YXRlIHMgPSBTVEFURV8wMDsKCQoJZm9yKGludCBpPTA7aTwxMDtpKyspIHtzPWZ1bmNbc10oaW5wdXRbaV0pO30KCXByaW50ZigiJWQiLHMpOwoJcmV0dXJuIDA7Cn0=