Cod sursa(job #120337)

Utilizator tamasgyGyorfi Tamas tamasgy Data 4 ianuarie 2008 22:57:23
Problema Dame Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 2.1 kb
#include <stdio.h>

main()
{
    FILE *r;
    int n,a[1001],i,l,m,aux;
    r=fopen("dame.in","r");
    fscanf(r,"%d",&n);
    fclose(r);
    r=fopen("dame.out","w");
    if (n==1)
        fprintf(r,"1\n1 1");
    if (n==2)
        fprintf(r,"1\n1 1");
    if (n==3)
        fprintf(r,"2\n1 1\n3 2");
    if (n>=4)
    {
    l=n%12;
    m=n%2;
    if (m==0)
    {
        for (i=1;i<=n/2;i++)
            a[i]=2*i;
        if ((l==3)||(l==9))
        {
            for (i=1;i<=n/2-1;i++)
                a[i]=a[i+1];
            a[n/2]=2;
        }
        for (i=1;i<=n/2;i++)
            a[n/2+i]=2*i-1;
        if (l==8)
        {
            for (i=n/2+1;i<=n;i=i+2)
            {
                aux=a[i];
                a[i]=a[i+1];
                a[i+1]=aux;
            }
        }
        if (l==2)
        {
            a[n/2+1]=3;
            a[n/2+2]=1;
            for (i=n/2+3;i<=n-1;i++)
                a[i]=a[i+1];
            a[n]=5;
        }
        if ((l==3)||(l==9))
        {
            for (i=n/2+1;i<=n-2;i++)
                a[i]=a[i+2];
            a[n-1]=1;
            a[n]=3;
        }
    }
    if (m==1)
    {
        for (i=1;i<=(n-1)/2;i++)
            a[i]=2*i;
        if ((l==3)||(l==9))
        {
            for (i=1;i<=(n-1)/2-1;i++)
                a[i]=a[i+1];
            a[(n-1)/2]=2;
        }
        for (i=1;i<=(n+1)/2;i++)
            a[(n-1)/2+i]=2*i-1;
        if (l==8)
        {
            for (i=(n-1)/2+1;i<=n;i=i+2)
            {
                aux=a[i];
                a[i]=a[i+1];
                a[i+1]=aux;
            }
        }
        if (l==2)
        {
            a[(n-1)/2+1]=3;
            a[(n-1)/2+2]=1;
            for (i=(n-1)/2+3;i<=n-1;i++)
                a[i]=a[i+1];
            a[n]=5;
        }
        if ((l==3)||(l==9))
        {
            for (i=(n-1)/2+1;i<=n-2;i++)
                a[i]=a[i+2];
            a[n-1]=1;
            a[n]=3;
        }
    }
    fprintf(r,"%d\n",n);
    for (i=1;i<=n;i++)
    fprintf(r,"%d %d\n",i,a[i]);
    }
    fclose(r);
}