Pagini recente » Cod sursa (job #971758) | Cod sursa (job #2729618) | Cod sursa (job #2937657) | Cod sursa (job #1887237) | Cod sursa (job #345320)
Cod sursa(job #345320)
#include <stdio.h>
#define N 1005
int n,col[N],r;
void schimba(int poz1,int poz2)
{
int temp;
temp=col[poz1];
col[poz1]=col[poz2];
col[poz2]=temp;
}
void muta(int poz)
{
col[++r]=col[poz];
int i;
for (i=poz+1; i<=r; i++)
col[i-1]=col[i];
r--;
}
void rezolva()
{
int i;
for (i=2; i<=n; i+=2)
col[++r]=i;
if (n%12==3 || n%12==9)
muta(1);
for (i=1; i<=n; i+=2)
col[++r]=i;
if (n%12==8)
{
schimba(r/2+1,r/2+2);
schimba(r/2+3,r/2+4);
}
if (n%12==2)
{
schimba(r/2+1,r/2+2);
muta(r/2+3);
}
if (n%12==3 || n%12==9)
{
muta(r/2+1);
muta(r/2+1);
}
}
void show()
{
int i,rez;
if (n==2 || n==3)
{
rez=n-1;
printf("%d\n",n-1);
}
else
{
rez=n;
printf("%d\n",n);
}
if (n==3)
printf("1 2\n3 1\n");
else
for (i=1; i<=rez; i++)
printf("%d %d\n",i,col[i]);
}
int main()
{
freopen("dame.in","r",stdin);
freopen("dame.out","w",stdout);
scanf("%d",&n);
rezolva();
show();
return 0;
}