#include <bits/stdc++.h> using namespace std; int t[100][2]; int main() { int k; scanf("%d", &k); for(int i=1; i<31; ++i) { t[i][0]=i+1; t[i][1]=-1; } t[31][0]=-1; t[31][1]=-1; for(int i=32; i<92; i+=2) { t[i][0]=i+1; t[i][1]=i+2; t[i+1][0]=i+2; t[i+1][1]=-1; } t[92][0]=-1; t[92][1]=-1; int x=92, y=1; while(k) { if(k&1) { t[y][1]=x; } ++y; x-=2; k>>=1; } printf("%d\n", 92); for(int i=1; i<=92; ++i) { printf("%d %d\n", t[i][0], t[i][1]); } }
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 | #include <bits/stdc++.h> using namespace std; int t[100][2]; int main() { int k; scanf("%d", &k); for(int i=1; i<31; ++i) { t[i][0]=i+1; t[i][1]=-1; } t[31][0]=-1; t[31][1]=-1; for(int i=32; i<92; i+=2) { t[i][0]=i+1; t[i][1]=i+2; t[i+1][0]=i+2; t[i+1][1]=-1; } t[92][0]=-1; t[92][1]=-1; int x=92, y=1; while(k) { if(k&1) { t[y][1]=x; } ++y; x-=2; k>>=1; } printf("%d\n", 92); for(int i=1; i<=92; ++i) { printf("%d %d\n", t[i][0], t[i][1]); } } |