Cod sursa(job #592540)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 28 mai 2011 19:43:57
Problema Dame Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <cstdio>
#include <algorithm>

using namespace std;

int v[1001];

int main()
{
    int n,i;
    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+=2)
        v[i/2]=i;
    for (i=1;i<=n;i+=2)
        v[n/2+i/2+1]=i;
    if (n%6==3)
    {
        for (i=1;i<n/2;++i)
            v[i]=v[i+1];
        v[n/2]=2;
        for (i=n/2+1;i<n-1;++i)
            v[i]=v[i+2];
        v[n-1]=1;
        v[n]=3;
    }
    else if (n%12==2)
    {
        v[n/2+1]=3;
        v[n/2+2]=1;
        for (i=n/2+3;i<n;++i)
            v[i]=v[i+1];
        v[n]=5;
    }
    else if (n%12==8)
    {
        for (i=n/2+1;i<n;i+=2)
            swap(v[i],v[i+1]);
    }
    printf("%d\n",n);
    for (i=1;i<=n;++i)
        printf("%d %d\n",i,v[i]);
    return 0;
}