Pagini recente » Cod sursa (job #495253) | Cod sursa (job #350480) | Cod sursa (job #3237621) | Cod sursa (job #3202596) | Cod sursa (job #3205774)
#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==11) {
for(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;
}