Pagini recente » Cod sursa (job #1050841) | Cod sursa (job #2737570) | Cod sursa (job #1236964) | Cod sursa (job #2336286) | Cod sursa (job #760117)
Cod sursa(job #760117)
#include <fstream>
int main(void)
{
unsigned int N;
std::ifstream in("dame.in");
in >> N;
in.close();
unsigned int *arr = new unsigned int [N];
unsigned int index = 0;
std::ofstream out("dame.out");
if(N == 2)
{
printf("1\n1 1\n");
out << 1 << '\n'<< 1 << ' ' << 1 << '\n';
out.close();
return 0;
}
if (N == 3)
{
printf("2\n1 1\n2 3\n");
out << 2 << '\n' << 1 << ' ' << 1 << '\n' << 2 << ' ' << 3 << '\n';
out.close();
return 0;
}
if(N % 12 == 3 || N % 12 == 9)
{
for(unsigned int i = 4; i <= N; i += 2, ++index)
arr[index] = i;
arr[index++] = 2;
for(unsigned int i = 5; i <= N; i+= 2, ++index)
arr[index] = i;
arr[index++] = 1;
arr[index] = 3;
}
else
{
for(unsigned int i = 2; i <= N; i += 2, ++index)
arr[index] = i;
if(N % 12 == 8)
for(unsigned int i = 1; i <= N; i += 4)
{
arr[index + 1] = i;
arr[index] = i + 2;
index += 2;
}
if(N % 12 == 2)
{
arr[index + 1] = 1;
arr[index] = 3;
index += 2;
for(unsigned int i = 7; i <= N; i += 2, ++index)
arr[index] = i;
arr[index] = 5;
}
}
out << N << '\n';
for(unsigned int index = 0; index < N; ++index)
out << index + 1 << ' ' << arr[index] << '\n';
out.close();
return 0;
}