Pagini recente » Cod sursa (job #1256695) | Cod sursa (job #235032) | Cod sursa (job #2121753) | Cod sursa (job #1860012) | Cod sursa (job #166833)
Cod sursa(job #166833)
#include <iostream>
#include <vector>
using namespace std;
vector<int> l;
int main(int argc, char *argv[]) {
FILE *fi = fopen("dame.in", "r");
int N;
fscanf(fi, "%d", &N);
fclose(fi);
if (N <= 2) {
FILE *fo = fopen("dame.out", "w");
fprintf(fo, "1\n1 1\n");
fclose(fo);
return 0;
}
if (N == 3) {
FILE *fo = fopen("dame.out", "w");
fprintf(fo, "2\n1 1\n2 3\n");
fclose(fo);
return 0;
}
int r = N % 12;
int s = 2;
if ((r == 3) || (r == 9))
s = 4;
for (int i = s; i <= N; i += 2)
l.push_back(i);
if ((r == 3) || (r == 9))
l.push_back(2);
if (r == 8) {
for (int i = 2; i + 1 < N; i += 4)
l.push_back(i + 1),
l.push_back(i - 1);
} else if (r == 2) {
l.push_back(3);
l.push_back(1);
for (int i = 7; i <= N; i += 2)
l.push_back(i);
l.push_back(5);
} else if ((r == 3) || (r == 9)) {
for (int i = 5; i <= N; i += 2)
l.push_back(i);
l.push_back(1);
l.push_back(3);
}
/*for (int i(0); i < (int)l.size(); ++i)
cout << l[i] << " ";
cout << endl;*/
FILE *fo = fopen("dame.out", "w");
fprintf(fo, "%d\n", N);
for (int i(0); i < (int)l.size(); ++i)
fprintf(fo, "%d %d\n", i + 1, l[i]);
fclose(fo);
return 0;
}