Pagini recente » Cod sursa (job #920242) | Cod sursa (job #677309) | Cod sursa (job #436297) | Cod sursa (job #581406) | Cod sursa (job #2339500)
#include <fstream>
using namespace std;
ifstream cin ("oras.in") ;
ofstream cout ("oras.out") ;
void impar ( int n , int step )
{
if ( step == n + 1 ) return ;
if ( step <= ( n - 3 ) / 2 )
{
for ( int i = 1 ; i <= step ; ++ i ) cout << '0' ;
for ( int i = 1 ; i <= n - 2 * step ; ++ i ) cout << '1' ;
for ( int i = 1 ; i <= step ; ++ i ) cout << '0' ;
cout << '\n' ;
impar( n , step + 1 ) ;
return ;
}
if ( step >= ( n - 3 ) / 2 + 4 )
{
int q = n - step + 1 ;
for ( int i = 1 ; i < q ; ++ i ) cout << '0' ;
cout << '1' ;
for ( int i = q + 1 ; i <= n - q + 1 ; ++ i ) cout << '0' ;
for ( int i = 1 ; i < q ; ++ i ) cout << '1' ;
cout << '\n' ;
impar( n , step + 1 ) ;
return ;
}
if ( step == ( n - 3 ) / 2 + 1 )
{
for ( int i = 1 ; i <= ( n - 3 ) / 2 ; ++ i ) cout << '0' ;
cout << "010" ;
for ( int i = 1 ; i <= ( n - 3 ) / 2 ; ++ i ) cout << '1' ;
cout << '\n' ;
impar( n , step + 1 ) ;
return ;
}
if ( step == ( n - 3 ) / 2 + 2 )
{
for ( int i = 1 ; i <= ( n - 3 ) / 2 ; ++ i ) cout << '0' ;
cout << "001" ;
for ( int i = 1 ; i <= ( n - 3 ) / 2 ; ++ i ) cout << '1' ;
cout << '\n' ;
impar( n , step + 1 ) ;
return ;
}
if ( step == ( n - 3 ) / 2 + 3 )
{
for ( int i = 1 ; i <= ( n - 3 ) / 2 ; ++ i ) cout << '0' ;
cout << "100" ;
for ( int i = 1 ; i <= ( n - 3 ) / 2 ; ++ i ) cout << '1' ;
cout << '\n' ;
impar( n , step + 1 ) ;
return ;
}
}
int main ()
{
int16_t n ; cin >> n ;
if ( n % 2 ) impar( n , 1 ) ;
else cout << -1 ;
return 0 ;
}