Cod sursa(job #2021032)

Utilizator DianaPopDiana Pop DianaPop Data 12 septembrie 2017 16:20:06
Problema Dame Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <stdio.h>

int  n , i ;
int a[1001] ;
int t;

int main(){

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

    scanf( "%d" , &n );

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

    for( i = 2 ; i <= n ; i = i + 2 ){
        a[i / 2] = i;
    }

    for( i = 1 ; i <= n ; i = i + 2 ){
        a[n/2 + i/2 + 1] = i;
    }

    if( n % 6 == 3 ){

        for( i = 1 ; i < n/2 ; i++ ){
            a[i] = a[i + 1];
        }

        a[n / 2] = 2;

        for ( i = n/2 + 1 ; i < n - 1 ; i++ ){
            a[i] = a[i + 2];
        }

        a[n - 1] = 1;
        a[n] = 3;
    }else if( n % 12 == 2 ){
        a[n / 2 + 1] = 3;
        a[n / 2 + 2] = 1;

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

    printf( "%d\n" , n );
    for( i = 1 ; i <= n ; i++ ){
        printf( "%d %d\n" , i , a[i] );
    }
    return 0;
}