Cod sursa(job #48398)

Utilizator DastasIonescu Vlad Dastas Data 4 aprilie 2007 19:10:17
Problema Dame Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("dame.in");
ofstream out("dame.out");

int n;
int a[1600];

int main()
{
    cin >> n;

    int r = n % 12;

    int k = 0;
    for ( int i = 2; i <= n; i += 2 )
        a[k++] = i;

    if ( r == 3 || r == 9 )
    {
        a[k++] = 2;
        a[0] = -1;
    }

    int poz1 = k;

    for ( int i = 1; i <= n; i += 2 )
        a[k++] = i;

    if ( r == 8 )
        for ( int i = poz1; i <= n; i += 2 )
        {
            int t = a[i];
            a[i] = a[i+1];
            a[i+1] = t;
        }

    if ( r == 2 )
    {
        int t = a[poz1];
        a[poz1] = a[poz1+1];
        a[poz1+1] = t;
        a[k++] = 5;
        a[poz1+2] = -1;
    }

    if ( r == 3 || r == 9 )
    {
        a[poz1] = -1;
        a[poz1+1] = -1;
        a[k++] = 1;
        a[k++] = 3;
    }

    if ( n == 1 || n >= 4 )
        out << n << endl;
    else
        out << n-1 << endl;

    int cnt = 0;
    for ( int i = 0; i < k; ++i )
        if ( a[i] != -1 )
            cout << i+1-cnt << " " << a[i] << endl;
        else
            cnt = 1;

	return 0;
}