Pagini recente » Cod sursa (job #1816002) | Cod sursa (job #933289) | Cod sursa (job #442821) | Cod sursa (job #1072846) | Cod sursa (job #1728152)
#include<cstdio>
#define MAXN 1010
using namespace std;
int v[MAXN];
void Solve(int n){
int i,index=0,start,temp;
if(n==1||n==2){
printf("1\n1 1");
return;
}
if(n==3){
printf("2\n1 1\n2 3");
return;
}
for(i=2;i<=n;i+=2){
index++;
v[index]=i;
}
if(n%12==3||n%12==9){
for(i=1;i<index;i++)
v[i]=v[i+1];
v[index]=2;
}
start=index;
for(i=1;i<=n;i+=2){
index++;
v[index]=i;
}
if(n%12==8)
for(i=start+1;i<=index;i+=2){
temp=v[i];
v[i]=v[i+1];
v[i+1]=temp;
}
if(n%12==2){
temp=v[start+1];
v[start+1]=v[start+2];
v[start+2]=temp;
for(i=start+3;i<=index;i++)
v[i]=v[i+1];
v[index]=5;
}
if(n%12==3||n%12==9){
for(i=start+1;i<=index;i+=2){
v[i]=v[i+2];
v[i+1]=v[i+3];
}
v[index-1]=1;
v[index]=3;
}
printf("%d\n",n);
for(i=1;i<=n;i++)
printf("%d %d\n",i,v[i]);
}
int main(){
freopen("dame.in","r",stdin);
freopen("dame.out","w",stdout);
int n;
scanf("%d",&n);
Solve(n);
return 0;
}