Cod sursa(job #957984)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 6 iunie 2013 18:24:04
Problema Dame Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <fstream>
#include <algorithm>
using namespace std;

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

#define Nmax 1099
#define X 12

int n,v[Nmax],k;

int main()
{
    f>>n;
    if(n==1) g<<1<<'\n'<<"1 1"<<'\n';
    else if(n==2)g<<1<<'\n'<<"1 1"<<'\n';
    else if(n==3)g<<2<<'\n'<<"1 1"<<'\n'<<"2 3"<<'\n';
    else
    {
        k=0;
        if(n % X==3 || n % X==9)
        {
            //se insereaza numerele pare de la 4 la n si se pune la sfarsitul listei numarul 2
            for(int i=4;i<=n;i+=2)v[++k]=i;
            v[++k]=2;
             //se insereaza numerele pare de la 4 la n si se pun la sfarsitul listei numerele 1,3
            for(int i=5;i<=n;i+=2)v[++k]=i;
            v[++k]=1;
            v[++k]=3;
        }
        {
            //se baga toate numerele pare
            for(int i=2;i<=n;i+=2)v[++k]=i;
            if(n % X==8)for(int i=1;i<=n;i+=4)
                            {
                                v[k]=i+2;
                                v[++k]=i;
                            }
            if(n % X==2)
            {
                v[++k]=3;v[++k]=1;
                for(int i=7;i<=n;i+=2)v[++k]=i;
                v[++k]=5;
            }
        }


        g<<'\n';
        for(int i=1;i<=n;i++)g<<i<<" "<<v[i]<<'\n';
    }
    return 0;
}