#include<bits/stdc++.h>
using namespace std;
vector<int> E[100];
int main(){
int k=31;
for(int i=1; i<k; i++){
E[2*i-1].push_back(2*i);
E[2*i-1].push_back(2*i+1);
E[2*i].push_back(2*i+1);
}
int n;
cin>>n;
for(int i=1; n>0; i++,n/=2){
if(n&1)E[2*i].push_back(2*k);
}
cout<<2*k<<"\n";
for(int i=1; i<=2*k; i++){
while(E[i].size()<2)E[i].push_back(-1);
cout<<E[i][0]<<" "<<E[i][1]<<"\n";
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include<bits/stdc++.h> using namespace std; vector<int> E[100]; int main(){ int k=31; for(int i=1; i<k; i++){ E[2*i-1].push_back(2*i); E[2*i-1].push_back(2*i+1); E[2*i].push_back(2*i+1); } int n; cin>>n; for(int i=1; n>0; i++,n/=2){ if(n&1)E[2*i].push_back(2*k); } cout<<2*k<<"\n"; for(int i=1; i<=2*k; i++){ while(E[i].size()<2)E[i].push_back(-1); cout<<E[i][0]<<" "<<E[i][1]<<"\n"; } } |
English