提交时间:2024-09-15 13:17:31
运行 ID: 32577
#include <bits/stdc++.h> using namespace std; const int N = 1005, M = 1e5 + 5; int n, a[N], m; char ans[M]; int cal(int x) { int res = 0; while (x > 1) { ans[++m] = '+'; res++; if (x & 1) ans[++m] = '1', x--; else ans[++m] = 'c', x >>= 1; } ans[++m] = '1'; return res; } int main() { cin >> n; for (int i = 1; i <= n; i++) scanf("%d", a + i); reverse(a + 1, a + n + 1); int pre = 0; for (int i = 1; i <= n; i++) pre += cal(pre + a[i]); for (int i = m; i >= 1; i--) putchar(ans[i]); puts(""); return 0; } // 2 1 3 4 5 2 7 1 // 8 7 6 5 4 3 2 1 // 1 1 // 2 // 2 2 // 4 // 4 4 // 8 // 8 1 1 // 7 2 //