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
#include <bits/stdc++.h>
using namespace std;

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int k,MAX=0,ile=0;
    pair< int, int > ostatnie;
    cin >> k;
    for(int i=0;i<=30;i++){
        if((k & (1<<i))!=0){
            //cout << "sda " << i << endl;
            MAX=i;
            ile++;
        }
    }
    ile--;
    //cout << "sdakfhls " << MAX << " " << ile << endl;
    if(k==1){
        cout << 2 << "\n";
        cout << 2 << " " << -1 << "\n";
        cout << -1 << " " << -1 << "\n";
    }
    else{
        int n=MAX*2+2+ile;
        cout << n << "\n";
        cout << 2 << " " << 3 << "\n";
        ostatnie = make_pair(2,3);
        int nastepny=4;
        for(int i=0;i<MAX-1;i++){
            if((k & (1<<i))!=0){
                cout << n << " " << nastepny << "\n";
                ostatnie.first=ostatnie.second;
                ostatnie.second=nastepny;
                nastepny++;
            }
            cout << nastepny << " " << nastepny+1 << "\n";
            cout << nastepny << " " << nastepny+1 << "\n";
            ostatnie.first=nastepny;
            ostatnie.second=nastepny+1;
            nastepny+=2;
        }
        if((k & (1<<(MAX-1)))!=0){
            cout << n << " " << nastepny << "\n";
            ostatnie.first=ostatnie.second;
            ostatnie.second=nastepny;
            nastepny++;
        }
        cout << n << " " << -1 << "\n";
        cout << n << " " << -1 << "\n";
        cout << -1 << " " << -1 << "\n";

    }

    return 0;
}