#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; }
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; } |