/*
Pertama menggunakan rekursi
Kedua menggunakan iterasi
-----------CAHINFOR.COM-----------
*/
#include <iostream>
using namespace std;
bool rek(char kampung,int hari){
if(hari==0){
if(kampung=='A') return true;
return false;
}
if(kampung=='B'){
if(rek('C',hari-1)) return true;
return false;
}
if(kampung=='D'){
if(rek('C',hari-1)||rek('B',hari-1)) return true;
return false;
}
if(kampung=='C'){
if(rek('A',hari-1)) return true;
return false;
}
if(kampung=='A'){
if(rek('B',hari-1)||rek('D',hari-1)) return true;
return false;
}
return false;
}
int main(){
int n,arr[4][1000];
cout<<"Masukkan Hari:\t\n";
cin>>n;
if(rek('A',n)) cout<<"Bisa\n";
else cout<<"Tidak\n";
if(rek('B',n)) cout<<"Bisa\n";
else cout<<"Tidak\n";
if(rek('C',n)) cout<<"Bisa\n";
else cout<<"Tidak\n";
if(rek('D',n)) cout<<"Bisa\n";
else cout<<"Tidak\n";
for(int i=0;i<=3;i++){
arr[0][i] = false;
arr[1][i] = false;
arr[2][i] = false;
arr[3][i] = false;
}
arr[0][0] = true;
arr[1][2] = true;
arr[2][1] = true;
arr[3][2] = true;
for(int i=3;i<=100;i++){
//untuk kampung A (0)
if(arr[3][i-1] || arr[1][i-1])
arr[0][i] = true;
//untuk kampung B (1)
if(arr[2][i-1])
arr[1][i] = true;
//untuk kampung C (2)
if(arr[0][i-1])
arr[2][i] = true;
//untuk kampung D (3)
if(arr[1][i-1] || arr[2][i-1])
arr[3][i] = true;
}
cout<<"_______________________\n";
if(arr[0][n]) cout<<"Bisa\n";
else cout<<"Tidak\n";
if(arr[1][n]) cout<<"Bisa\n";
else cout<<"Tidak\n";
if(arr[2][n]) cout<<"Bisa\n";
else cout<<"Tidak\n";
if(arr[3][n]) cout<<"Bisa\n";
else cout<<"Tidak\n";
}
LyoKUGVydGFtYSBtZW5nZ3VuYWthbiByZWt1cnNpCgpLZWR1YSBtZW5nZ3VuYWthbiBpdGVyYXNpCgoKLS0tLS0tLS0tLS1DQUhJTkZPUi5DT00tLS0tLS0tLS0tLQoqLwojaW5jbHVkZSA8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmJvb2wgcmVrKGNoYXIga2FtcHVuZyxpbnQgaGFyaSl7CglpZihoYXJpPT0wKXsKCQkgaWYoa2FtcHVuZz09J0EnKSByZXR1cm4gdHJ1ZTsKCQkgcmV0dXJuIGZhbHNlOwoJIH0KCWlmKGthbXB1bmc9PSdCJyl7CgkJaWYocmVrKCdDJyxoYXJpLTEpKSByZXR1cm4gdHJ1ZTsKCQlyZXR1cm4gZmFsc2U7Cgl9CglpZihrYW1wdW5nPT0nRCcpewoJCWlmKHJlaygnQycsaGFyaS0xKXx8cmVrKCdCJyxoYXJpLTEpKSByZXR1cm4gdHJ1ZTsKCQlyZXR1cm4gZmFsc2U7Cgl9CglpZihrYW1wdW5nPT0nQycpewoJCWlmKHJlaygnQScsaGFyaS0xKSkgcmV0dXJuIHRydWU7CgkJcmV0dXJuIGZhbHNlOwoJfQoJaWYoa2FtcHVuZz09J0EnKXsKCQlpZihyZWsoJ0InLGhhcmktMSl8fHJlaygnRCcsaGFyaS0xKSkgcmV0dXJuIHRydWU7CgkJcmV0dXJuIGZhbHNlOwoJfQoJcmV0dXJuIGZhbHNlOwp9CmludCBtYWluKCl7CglpbnQgbixhcnJbNF1bMTAwMF07Cgljb3V0PDwiTWFzdWtrYW4gSGFyaTpcdFxuIjsKCWNpbj4+bjsKCWlmKHJlaygnQScsbikpIGNvdXQ8PCJCaXNhXG4iOwoJZWxzZSBjb3V0PDwiVGlkYWtcbiI7CglpZihyZWsoJ0InLG4pKSBjb3V0PDwiQmlzYVxuIjsKCWVsc2UgY291dDw8IlRpZGFrXG4iOwoJaWYocmVrKCdDJyxuKSkgY291dDw8IkJpc2FcbiI7CgllbHNlIGNvdXQ8PCJUaWRha1xuIjsKCWlmKHJlaygnRCcsbikpIGNvdXQ8PCJCaXNhXG4iOwoJZWxzZSBjb3V0PDwiVGlkYWtcbiI7CgkKCWZvcihpbnQgaT0wO2k8PTM7aSsrKXsKCQlhcnJbMF1baV0gPSBmYWxzZTsKCQlhcnJbMV1baV0gPSBmYWxzZTsKCQlhcnJbMl1baV0gPSBmYWxzZTsKCQlhcnJbM11baV0gPSBmYWxzZTsKCX0KCWFyclswXVswXSA9IHRydWU7CglhcnJbMV1bMl0gPSB0cnVlOwoJYXJyWzJdWzFdID0gdHJ1ZTsKCWFyclszXVsyXSA9IHRydWU7Cglmb3IoaW50IGk9MztpPD0xMDA7aSsrKXsKCQkvL3VudHVrIGthbXB1bmcgQSAoMCkKCQlpZihhcnJbM11baS0xXSB8fCBhcnJbMV1baS0xXSkgCgkJCWFyclswXVtpXSA9IHRydWU7CgkJCQoJCS8vdW50dWsga2FtcHVuZyBCICgxKQoJCWlmKGFyclsyXVtpLTFdKSAKCQkJYXJyWzFdW2ldID0gdHJ1ZTsKCQkJCgkJLy91bnR1ayBrYW1wdW5nIEMgKDIpCgkJaWYoYXJyWzBdW2ktMV0pIAoJCQlhcnJbMl1baV0gPSB0cnVlOwoJCQkKCQkvL3VudHVrIGthbXB1bmcgRCAoMykKCQlpZihhcnJbMV1baS0xXSB8fCBhcnJbMl1baS0xXSkKCQkJYXJyWzNdW2ldID0gdHJ1ZTsKCQkKCX0KCWNvdXQ8PCJfX19fX19fX19fX19fX19fX19fX19fX1xuIjsKCWlmKGFyclswXVtuXSkgY291dDw8IkJpc2FcbiI7CgllbHNlIGNvdXQ8PCJUaWRha1xuIjsKCWlmKGFyclsxXVtuXSkgY291dDw8IkJpc2FcbiI7CgllbHNlIGNvdXQ8PCJUaWRha1xuIjsKCWlmKGFyclsyXVtuXSkgY291dDw8IkJpc2FcbiI7CgllbHNlIGNvdXQ8PCJUaWRha1xuIjsKCWlmKGFyclszXVtuXSkgY291dDw8IkJpc2FcbiI7CgllbHNlIGNvdXQ8PCJUaWRha1xuIjsKfQo=