#include<stdio.h>
//#include<conio.h>
#include<stack>
using namespace std;
stack < int > arr;
stack < int > brr;
stack < int > crr;
int sum= 0 ;
void func( int n,int present,int usable,int final)
{
int i;
if ( n== 0 )
return ;
func( n- 1 ,present,final,usable) ;
if ( present== 1 && final== 2 )
{ brr.push ( arr.top ( ) ) ; arr.pop ( ) ; }
else if ( present== 1 && final== 3 )
{ crr.push ( arr.top ( ) ) ; arr.pop ( ) ; }
else if ( present== 2 && final== 1 )
{ arr.push ( brr.top ( ) ) ; brr.pop ( ) ; }
else if ( present== 2 && final== 3 )
{ crr.push ( brr.top ( ) ) ; brr.pop ( ) ; }
else if ( present== 3 && final== 1 )
{ arr.push ( crr.top ( ) ) ; crr.pop ( ) ; }
else if ( present== 3 && final== 2 )
{ brr.push ( crr.top ( ) ) ; crr.pop ( ) ; }
sum= sum+ 1 ;
printf ( "1->" ) ;
for ( i= 0 ; i< arr.size ( ) ; i++ )
printf ( "%d " ,arr[ i] ) ;
printf ( "\n " ) ;
printf ( "2->" ) ;
for ( i= 0 ; i< brr.size ( ) ; i++ )
printf ( "%d " ,brr[ i] ) ;
printf ( "\n " ) ;
printf ( "3->" ) ;
for ( i= 0 ; i< crr.size ( ) ; i++ )
printf ( "%d " ,crr[ i] ) ;
printf ( "\n \n " ) ;
func( n- 1 ,usable,present,final) ;
}
int main( )
{
int n;
scanf ( "%d" ,& n) ;
for ( int i= n; i> 0 ; i-- )
arr.push ( i) ;
func( n,1 ,2 ,3 ) ;
printf ( "%d" ,sum) ;
//getch();
}
I2luY2x1ZGU8c3RkaW8uaD4KLy8jaW5jbHVkZTxjb25pby5oPgojaW5jbHVkZTxzdGFjaz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKICAgIHN0YWNrIDxpbnQ+IGFycjsKICAgIHN0YWNrIDxpbnQ+IGJycjsKICAgIHN0YWNrIDxpbnQ+IGNycjsKaW50IHN1bT0wOwp2b2lkIGZ1bmMoaW50IG4saW50IHByZXNlbnQsaW50IHVzYWJsZSxpbnQgZmluYWwpCnsKICAgICBpbnQgaTsKICAgIGlmKG49PTApCiAgICByZXR1cm47CiAgICAKICAgIAogICAgZnVuYyhuLTEscHJlc2VudCxmaW5hbCx1c2FibGUpOwogICAgCiAgICBpZihwcmVzZW50PT0xICYmIGZpbmFsPT0yKQogICAge2Jyci5wdXNoKGFyci50b3AoKSk7YXJyLnBvcCgpO30KICAgIGVsc2UgaWYocHJlc2VudD09MSAmJiBmaW5hbD09MykKICAgIHtjcnIucHVzaChhcnIudG9wKCkpO2Fyci5wb3AoKTt9CiAgICBlbHNlIGlmKHByZXNlbnQ9PTIgJiYgZmluYWw9PTEpCiAgICB7YXJyLnB1c2goYnJyLnRvcCgpKTticnIucG9wKCk7fQogICAgZWxzZSBpZihwcmVzZW50PT0yICYmIGZpbmFsPT0zKQogICAge2Nyci5wdXNoKGJyci50b3AoKSk7YnJyLnBvcCgpO30KICAgIGVsc2UgaWYocHJlc2VudD09MyAmJiBmaW5hbD09MSkKICAgIHthcnIucHVzaChjcnIudG9wKCkpO2Nyci5wb3AoKTt9CiAgICBlbHNlIGlmKHByZXNlbnQ9PTMgJiYgZmluYWw9PTIpCiAgICB7YnJyLnB1c2goY3JyLnRvcCgpKTtjcnIucG9wKCk7fQogICAgCiAgICBzdW09c3VtKzE7CiAgICBwcmludGYoIjEtPiIpOwogICAgZm9yKGk9MDtpPGFyci5zaXplKCk7aSsrKQogICAgcHJpbnRmKCIlZCAiLGFycltpXSk7CiAgICBwcmludGYoIlxuIik7CiAgICBwcmludGYoIjItPiIpOwogICAgZm9yKGk9MDtpPGJyci5zaXplKCk7aSsrKQogICAgcHJpbnRmKCIlZCAiLGJycltpXSk7CiAgICBwcmludGYoIlxuIik7CiAgICBwcmludGYoIjMtPiIpOwogICAgZm9yKGk9MDtpPGNyci5zaXplKCk7aSsrKQogICAgcHJpbnRmKCIlZCAiLGNycltpXSk7CiAgICBwcmludGYoIlxuXG4iKTsKICAgIGZ1bmMobi0xLHVzYWJsZSxwcmVzZW50LGZpbmFsKTsKfQoKaW50IG1haW4oKQp7CiAgICBpbnQgbjsKICAgIHNjYW5mKCIlZCIsJm4pOwogICAgZm9yKGludCBpPW47aT4wO2ktLSkKICAgIGFyci5wdXNoKGkpOwogICAgZnVuYyhuLDEsMiwzKTsKICAgIHByaW50ZigiJWQiLHN1bSk7CiAgICAvL2dldGNoKCk7Cn0K
compilation info
prog.cpp: In function ‘void func(int, int, int, int)’:
prog.cpp:33: warning: comparison between signed and unsigned integer expressions
prog.cpp:34: error: no match for ‘operator[]’ in ‘arr[i]’
prog.cpp:37: warning: comparison between signed and unsigned integer expressions
prog.cpp:38: error: no match for ‘operator[]’ in ‘brr[i]’
prog.cpp:41: warning: comparison between signed and unsigned integer expressions
prog.cpp:42: error: no match for ‘operator[]’ in ‘crr[i]’
prog.cpp: In function ‘int main()’:
prog.cpp:50: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
stdout