Pagini recente » Cod sursa (job #1293929) | Profil sora_naegino | Cod sursa (job #1684749) | Cod sursa (job #1085642) | Cod sursa (job #460734)
Cod sursa(job #460734)
#include <algorithm>
using namespace std;
const char FIN[] = "dame.in";
const char FOU[] = "dame.out";
const int MAX = 105;
int V[MAX];
int N, k = 0;
int main()
{
freopen(FIN, "r", stdin);
freopen(FOU, "w", stdout);
scanf("%d", &N);
if ( N == 1 )
{
printf("1\n1 1");
return 0;
}
if ( N == 2 )
{
printf("1\n1 1");
return 0;
}
for (int i = 1; i <= N >> 1; ++i)
if ( !(i == 1 && (N % 12 == 3 || N % 12 == 9)) )
V[++k] = i << 1;
if ( N % 12 == 3 || N % 12 == 9 ) V[++k] = 2;
for (int i = 1; i <= N >> 1; ++i)
if ( !(i == 3 && (N % 12 == 2)) )
if ( !( (i == 1 || i == 2) && (N % 12 == 3 || N % 12 == 9)) )
V[++k] = (i << 1) - 1;
if ( N % 12 == 8 )
for (int i = (N >> 1) + 1; i <= k; i += 2)
swap ( V[i], V[i + 1] );
else if ( N % 12 == 2 )
swap ( V[(N >> 1) + 1], V[(N >> 1) + 2] ), V[++k] = 5;
else if (N % 12 == 3 || N % 12 == 9) V[++k] = 1, V[++k] = 3;
printf("%d\n", k);
for (int i = 1; i <= k; ++i)
printf("%d %d\n", i, V[i]);
return 0;
}