Pagini recente » Cod sursa (job #1550841) | Cod sursa (job #1332858) | Cod sursa (job #2211535) | Cod sursa (job #677628) | Cod sursa (job #1225235)
#include <cstdio>
using namespace std;
int n,col[1005],r;
void change(int poz1,int poz2)
{
int t;
t=col[poz1];
col[poz1]=col[poz2];
col[poz2]=t;
}
void moveit(int poz)
{
col[++r]=col[poz];
int i;
for (i=poz+1; i<=r; i++)
col[i-1]=col[i];
r--;
}
void solve()
{
int i;
for (i=2; i<=n; i+=2)
col[++r]=i;
if (n%12==3 || n%12==9)
moveit(1);
for (i=1; i<=n; i+=2)
col[++r]=i;
if (n%12==8)
for (i=r/2+1; i<=r; i+=2)
change(i,i+1);
if (n%12==2)
{
change(r/2+1,r/2+2);
moveit(r/2+3);
}
if (n%12==3 || n%12==9)
{
moveit(r/2+1);
moveit(r/2+1);
}
}
void print()
{
int i,sol;
if (n==2 || n==3)
{
sol=n-1;
printf("%d\n",n-1);
}
else
{
sol=n;
printf("%d\n",n);
}
if (n==3)
printf("1 2\n3 1\n");
else
for (i=1; i<=sol; i++)
printf("%d %d\n",i,col[i]);
}
int main()
{
freopen("dame.in","r",stdin);
freopen("dame.out","w",stdout);
scanf("%d",&n);
solve();
print();
return 0;
}