Pagini recente » Cod sursa (job #1518741) | Cod sursa (job #499698) | Cod sursa (job #2726558) | Cod sursa (job #2919512) | Cod sursa (job #34869)
Cod sursa(job #34869)
#include <stdio.h>
#include <stdlib.h>
#define Nmax 1000
int N,coada[Nmax+10],st,dr,i,impar,aux;
int main()
{
freopen("dame.in","r",stdin);
scanf("%d",&N);
fclose(stdin);
freopen("dame.out","w",stdout);
if ((N==2)||(N==3))
{
printf("%d\n",N-1);
if (N==2) printf("%d %d",1,1);
else printf("%d %d\n%d %d",1,1,2,3);
fclose(stdout);
exit(0);
}
else printf("%d\n",N);
st=1;
for (i=2;i<=N;i+=2)
coada[++dr]=i;
if ((N%12==3)||(N%12==9))
{
++st;
coada[++dr]=2;
}
impar=dr+1;
for (i=1;i<=N;i+=2)
coada[++dr]=i;
if (N%12==8)
{
for (i=impar;i<=dr;i+=2)
{
aux=coada[i];
coada[i]=coada[i+1];
coada[i+1]=aux;
}
}
if (N%12==2)
{
aux=coada[impar];
coada[impar]=coada[impar+1];
coada[impar+1]=aux;
for (i=impar+2;i<=dr-1;++i)
coada[i]=coada[i+1];
coada[dr]=5;
}
if ((N%12==3)||(N%12==9))
{
for (i=impar;i<=dr-2;++i)
coada[i]=coada[i+2];
coada[dr-1]=1;
coada[dr]=3;
}
for (i=st;i<=dr;++i)
printf("%d %d\n",i-st+1,coada[i]);
fclose(stdout);
return 0;
}