Pagini recente » Cod sursa (job #609429) | Cod sursa (job #1980075) | Cod sursa (job #2286351) | Cod sursa (job #1090566) | Cod sursa (job #175793)
Cod sursa(job #175793)
#include <stdio.h>
long n,p[1000000],imp[1000000],i,d,pare,impare,j;
int main()
{
freopen ("dame.in","r",stdin);
freopen ("dame.out","w",stdout);
scanf("%ld",&n);d=n%12;
if (d==3||d==9)
{
for (i=4;i<=n;i+=2){
j++;
p[j]=i;}
p[j+1]=2;
pare=j+1;
j=0;
//^pare
for (i=5;i<=n;i+=2){
j++;
imp[j]=i;
}
p[j+1]=1;
p[j+2]=3;
impare=j+2;
//^impare
}
else if (d==8){
for (i=2;i<=n;i+=2){
j++;
p[j]=i;
}
pare=j;
//^pare
j=0;
for (i=1;i<=n;i+=4){
if(i+2<=n)
{j++;
imp[j]=i+2;}
j++;
imp[j]=i;
}
impare=j;
//^impare
}
else if (d==2){
for (i=2;i<=n;i+=2){
j++;p[j]=i;}
imp[1]=3;
imp[2]=1;
j=2;
for(i=7;i<=n;i+=2)
{j++;p[j]=i;}
p[j+1]=5;
impare=j+1;
}
else{
for(i=2;i<=n;i+=2)
{j++;p[j]=i;}pare=j;
j=0;
for(i=1;i<=n;i+=2)
{j++;imp[j]=i;}impare=j;
}
printf("%ld\n",pare+impare);
for(i=1;i<=pare;i++)
printf("%ld %ld\n",i,p[i]);
for(i=1;i<=impare;i++)
printf("%ld %ld\n",i+pare,imp[i]);
return 0;
}