Pagini recente » Cod sursa (job #2114120) | Cod sursa (job #1464148) | Cod sursa (job #1130785) | Cod sursa (job #395896) | Cod sursa (job #1732873)
#include <fstream>
using namespace std;
ifstream f ("dame.in");
ofstream g ("dame.out");
int li[1500] , dr , n , p1 , p2 , p;
int main() {
f >> n;
dr = 0;
for (int i = 2; i <= n; i += 2) {
li[++dr] = i;
}
if (n % 12 == 3 || n % 12 == 9) {
for (int i = 1; i <= dr; ++i) {
li[i] = li[i + 1];
}
li[dr] = 2;
}
for (int i = 1; i <= n; i += 2) {
li[++dr] = i;
}
if (n % 12 == 8) {
for (int i = 1; i <= dr; ++i) {
if (li[i] % 2 == 1 && li[i - 1] % 2 == 1) {
swap(li[i] , li[i - 1]);
++i;
}
}
}
if (n % 12 == 2) {
for (int i = 1; i <= dr; ++i) {
if (li[i] == 1) {
p1 = i;
break;
}
}
for (int i = 1; i <= dr; ++i) {
if (li[i] == 3) {
p2 = i;
break;
}
}
swap(p1 , p2);
for (int i = 1; i <= dr; ++i) {
if (li[i] == 5) {
p = i;
break;
}
}
for (int i = p; i < dr; ++i) {
li[i] = li[i + 1];
}
li[dr] = 5;
}
if (n % 12 == 3 || n % 12 == 9) {
for (int i = 1; i <= dr; ++i) {
if (li[i] == 1) {
p = i;
break;
}
}
for (int i = p; i < dr; ++i) {
li[i] = li[i + 1];
}
li[dr] = 1;
for (int i = 1; i <= dr; ++i) {
if (li[i] == 3) {
p = i;
break;
}
}
for (int i = p; i < dr; ++i) {
li[i] = li[i + 1];
}
li[dr] = 3;
}
g << n << '\n';
for (int i = 1; i <= dr; ++i) {
g << i << " " << li[i] << '\n';
}
return 0;
}