#include <iostream>
using namespace std;
int en = 708;
int e[105][2];
int n;
void cccc(int poc, int k)
{
if (k == 1)
{
e[poc][0] = en;
n = poc + 1;
return;
}
e[poc][0] = poc + 1;
e[poc][1] = poc + 2;
e[poc + 1][0] = poc + 2;
cccc(poc + 2, k/2);
if (k & 1) e[poc + 1][1] = en;
return;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int k;
cin >> k;
cccc(1, k);
cout << n << '\n';
{
for (int i = 1; i <= n; i++)
{
if (e[i][0] == en) cout << n;
else if (e[i][0] == 0) cout << -1;
else cout << e[i][0];
cout << " ";
if (e[i][1] == en) cout << n;
else if (e[i][1] == 0) cout << -1;
else cout << e[i][1];
cout << "\n";
}
}
}
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 | #include <iostream> using namespace std; int en = 708; int e[105][2]; int n; void cccc(int poc, int k) { if (k == 1) { e[poc][0] = en; n = poc + 1; return; } e[poc][0] = poc + 1; e[poc][1] = poc + 2; e[poc + 1][0] = poc + 2; cccc(poc + 2, k/2); if (k & 1) e[poc + 1][1] = en; return; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int k; cin >> k; cccc(1, k); cout << n << '\n'; { for (int i = 1; i <= n; i++) { if (e[i][0] == en) cout << n; else if (e[i][0] == 0) cout << -1; else cout << e[i][0]; cout << " "; if (e[i][1] == en) cout << n; else if (e[i][1] == 0) cout << -1; else cout << e[i][1]; cout << "\n"; } } } |
English