Cod sursa(job #1481595)

Utilizator enedumitruene dumitru enedumitru Data 4 septembrie 2015 20:49:28
Problema Dame Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("dame.in"); ofstream g("dame.out");
int n,k,v[1005];
int main()
{   f>>n;
    if(n<=2) g<<"1\n1 1";
    if(n==3) g<<"2\n1 2\n3 3";
    if(n>3)
    {   int i;
        for(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(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&1) v[++k]=n;
        if(n%12==8) for(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;
        g<<k<<'\n';
        for(i=1;i<=k;++i) g<<i<<' '<<v[i]<<'\n';
    }
    g.close(); return 0;
}