Mai intai trebuie sa te autentifici.
Cod sursa(job #81489)
Utilizator | Data | 2 septembrie 2007 18:56:38 | |
---|---|---|---|
Problema | Dame | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.18 kb |
#include <stdio.h>
#define NMAX 1100
int n, a[NMAX], x, i, db, j, aux;
int main()
{
freopen("dame.in","r",stdin);
freopen("dame.out","w",stdout);
scanf("%d", &n);
db=0;
if (n==1)
{
printf("1\n");
printf("1 1\n");
}
else if (n==2)
{
printf("1\n");
printf("1 1\n");
}
else if (n==3)
{
printf("2\n");
printf("1 1\n");
printf("3 2");
}
else
{
x=n%12;
if (x==3 || x==9)
{
for (i=4; i<=n; i+=2)
a[++db]=i;
a[++db]=2;
for (i=5; i<=n; i+=2)
a[++db]=i;
a[++db]=1;
a[++db]=3;
}
else if (x==8)
{
for (i=2; i<=n; i+=2)
a[++db]=i;
j=0;
for (i=1; i<=n; i+=2)
{
++j;
a[++db]=i;
if (j & 1)
{
aux=a[db];
a[db]=a[db-1];
a[db-1]=aux;
}
}
}
else if (x==2)
{
for (i=2; i<=n; i+=2)
a[++db]=i;
a[++db]=3;
a[++db]=1;
for (i=7; i<=n; i+=2)
a[++db]=i;
a[++db]=5;
}
else
{
for (i=2; i<=n; i+=2)
a[++db]=i;
for (i=1; i<=n; i+=2)
a[++db]=i;
}
printf("%d\n", n);
for (i=1; i<=db; ++i)
printf("%d %d\n", i, a[i]);
}
fclose(stdin);
fclose(stdout);
return 0;
}