Cod sursa(job #3205781)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 20 februarie 2024 14:48:49
Problema Dame Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<bits/stdc++.h>
using namespace std;
ifstream F("dame.in");
ofstream G("dame.out");
int n,i,j,a[1001];
int main()
{
    if(F>>n,n<3)
        return G<<"1\n1 1",0;
    if(n<4)
        return G<<"2\n1 2\n3 1",0;
    if(n%12==0||n%12==1||n%12==4||n%12==5||n%12==6||n%12==7||n%12==10||n%12==11) {
        for(G<<n<<'\n',j=1,i=2;i<=n;G<<j<<' '<<i<<'\n',i+=2,++j);
        for(i=1;i<=n;G<<j<<' '<<i<<'\n',i+=2,++j);
        return 0;
    }
    assert(false);
    for(j=1,i=2;i<=n;a[j++]=i,i+=2);
    if(n%12==3||n%12==9)
        swap(a[1],a[n/2]);
    for(i=1;i<=n;a[j++]=i,i+=2);
    if(n%12==8)
        for(i=n/2+1;i<=n;swap(a[i],a[i+1]),i+=2);
    if(n%12==2)
        swap(a[n/2+1],a[n/2+2]),swap(a[n/2+3],a[n]);
    if(n%12==3||n%12==9)
        swap(a[n/2+1],a[n-1]),swap(a[n/2+2],a[n]);
    if(n%12==2||n%12==3||n%12==8||n%12==9||n%12==10)
        assert(false);
    for(G<<n<<'\n',i=1;i<=n;G<<i<<' '<<a[i]<<'\n',++i);
    return 0;
}