Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
32577 | Aquizahv | 【S】T1 | C++ | 通过 | 100 | 1 MS | 320 KB | 782 | 2024-09-15 13:17:31 |
#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 //