Cod sursa(job #2021019)

Utilizator DianaPopDiana Pop DianaPop Data 12 septembrie 2017 16:04:44
Problema Dame Scor 80
Compilator c Status done
Runda Arhiva de probleme Marime 1.68 kb
#include <stdio.h>


long i , nr , q , n , x ;
long a[10000];
long t;


int main(){

    freopen( "dame.in" , "r" , stdin );
    freopen( "dame.out" , "w" , stdout );

    scanf( "%ld" , &n );

    if( n == 1 || n >= 4 ){

        printf( "%ld\n" , n );

        nr = 1;
        x = 2;

        do{
            a[nr] = x;
            nr++;
            x = x + 2;
        }while( x <= n );

        if( n % 12 == 3 || n % 12 == 9 ){
            for( i = 1 ; i < nr ; i++ ){
                a[i] = a[ i + 1 ];
            }
            a[ nr - 1 ] = 2;
        }

        x = 1;
        q = 0;

        do{
            a[ nr + q ] = x;
            q++;
            x = x + 2;
        }while( x <= n );

        if( n % 12 == 8 ){
            for( i = nr ; i <= nr + q - 1 ; i = i + 2 ){
                t = a[i];
                a[i] = a[ i + 1 ];
                a[ i + 1 ] = t;
            }
        }else if( n % 12 == 2 ){
                a[nr] = 3;
                a[ nr + 1 ]=1;
                for( i = nr + 2 ; i <= nr + q - 1 ; i++ ){
                    a[i] = a[ i + 1 ];
                }
                a[ nr + q - 1 ]=5;
        }else if( n % 12 == 3 || n % 12 == 9 ){
                for( i = nr ; i <= nr + q - 1 ; i++) {
                    a[i] = a[i+2];
                    a[ nr + q - 2 ] = 1;
                    a[ nr + q - 1] = 3;
                }
        }

        for( i = 1 ; i <= nr + q - 1 ; i++ ){
            printf( "%ld %ld \n" , i , a[i] );
        }

    }else if( n == 3 ){
        printf( "2\n" );
        printf( "2 1 \n3 3\n" );
    }else if( n == 2 ){
        printf( "1\n1 1\n" );
    }


    return 0;
}