1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <cstdio>

int wierzcholki[101][2];

int main() {
	int k;
	scanf("%d", &k);

	for (int i = 1; i < 101; i++) {
		wierzcholki[i][0] = -1;
		wierzcholki[i][1] = -1;
	}

	wierzcholki[98][0] = 100;
	wierzcholki[98][1] = 99;
	wierzcholki[99][0] = 100;

	int wskaznik = 1;
	while (k > 0) {
		if (k == 1) {
			wierzcholki[wskaznik][0] = 100;
			k = 0;

		} else if (k == 2) {
			wierzcholki[wskaznik][0] = 98;
			k = 0;

		} else {
			if (k % 2 == 0) {
				wierzcholki[wskaznik][0] = wskaznik + 1;
				wierzcholki[wskaznik][1] = wskaznik + 2;

				wierzcholki[wskaznik + 1][0] = wskaznik + 2;
				wierzcholki[wskaznik + 1][1] = 98;

				wskaznik += 2;
				k = k / 2 - 1;

			} else {
				wierzcholki[wskaznik][0] = wskaznik + 1;
				wierzcholki[wskaznik][1] = wskaznik + 2;

				wierzcholki[wskaznik + 1][0] = wskaznik + 2;
				wierzcholki[wskaznik + 1][1] = 100;

				wskaznik += 2;
				k = k / 2;
			}
		}
	}

	printf("100\n");
	for (int i = 1; i < 101; i++) {
		printf("%d %d\n", wierzcholki[i][0], wierzcholki[i][1]);
	}

	return 0;
}