#include <bits/stdc++.h> using namespace std; typedef pair<int,int> II; #define INFTY 2000000000 #define MOD 1000000007 int main() { std::ios::sync_with_stdio(0); int i, j, n, k; cin >> k; cout << 91 << "\n"; // pełne drzewo binarne o 16 liściach for (i=1; i<=15; i++) cout << 2*i << " " << 2*i+1 << "\n"; // teraz wypuszczamy krawędzie z liści, każda krawędź to 1 bit // 32 bity zgodnie z k (ostatnie 2 będą zerowe, bo k<=10^9). for (i=0; i<32; i++) { cout << (k % 2 ? 90-2*i : -1) << (i % 2 ? "\n" : " "); k /= 2; } // teraz gadżet podwajający cout << "33 34 \n"; for (i=0; i < 28; i++) { cout << 33 + 2*(i+1) << " " << 33 + 2*(i+1) + 1 << "\n"; cout << 33 + 2*(i+1) << " " << 33 + 2*(i+1) + 1 << "\n"; } cout << "91 -1" << "\n"; cout << "91 -1" << "\n"; cout << "-1 -1" << "\n"; return 0; }
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 | #include <bits/stdc++.h> using namespace std; typedef pair<int,int> II; #define INFTY 2000000000 #define MOD 1000000007 int main() { std::ios::sync_with_stdio(0); int i, j, n, k; cin >> k; cout << 91 << "\n"; // pełne drzewo binarne o 16 liściach for (i=1; i<=15; i++) cout << 2*i << " " << 2*i+1 << "\n"; // teraz wypuszczamy krawędzie z liści, każda krawędź to 1 bit // 32 bity zgodnie z k (ostatnie 2 będą zerowe, bo k<=10^9). for (i=0; i<32; i++) { cout << (k % 2 ? 90-2*i : -1) << (i % 2 ? "\n" : " "); k /= 2; } // teraz gadżet podwajający cout << "33 34 \n"; for (i=0; i < 28; i++) { cout << 33 + 2*(i+1) << " " << 33 + 2*(i+1) + 1 << "\n"; cout << 33 + 2*(i+1) << " " << 33 + 2*(i+1) + 1 << "\n"; } cout << "91 -1" << "\n"; cout << "91 -1" << "\n"; cout << "-1 -1" << "\n"; return 0; } |