Cod sursa(job #460732)

Utilizator SpiderManSimoiu Robert SpiderMan Data 3 iunie 2010 18:05:27
Problema Dame Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <algorithm>
using namespace std;

const char FIN[] = "dame.in";
const char FOU[] = "dame.out";
const int MAX = 105;

int V[MAX];
int N, k = 0;

int main()
{
    freopen(FIN, "r", stdin);
    freopen(FOU, "w", stdout);

    scanf("%d", &N);

    for (int i = 1; i <= N >> 1; ++i)
       if ( !(i == 1 && (N % 12 == 3 || N % 12 == 9)) )
           V[++k] = i << 1;

    if ( N % 12 == 3 || N % 12 == 9 ) V[++k] = 2;

    for (int i = 1; i <= N >> 1; ++i)
       if ( !(i == 3 && (N % 12 == 2)) )
          if ( !( (i == 1 || i == 2) && (N % 12 == 3 || N % 12 == 9)) )
             V[++k] = (i << 1) - 1;

    if ( N % 12 == 8 )
      for (int i = (N >> 1) + 1; i <= k; i += 2)
          swap ( V[i], V[i + 1] );
    else if ( N % 12 == 2 )
       swap ( V[(N >> 1) + 1], V[(N >> 1) + 2] ), V[++k] = 5;
    else if (N % 12 == 3 || N % 12 == 9) V[++k] = 1, V[++k] = 3;

    printf("%d\n", k);

    for (int i = 1; i <= k; ++i)
       printf("%d %d\n", i, V[i]);

    return 0;
}