Untitled
unknown
c_cpp
4 months ago
1.6 kB
2
Indexable
#include <iostream> #include <vector> #define int long long using namespace std; int atoi2(string s) { int ans = 0, m = 1; for (int i = s.length() - 1; i >= 0; --i) ans += ((s[i] - '0') * m), m *= 10; return ans; } int32_t main() { string s; cin >> s; int n = s.length(), id = 0; int res = 0; for (auto x : s) res += x - '0'; cout << res << endl; vector<pair<int, int>> f; //, idx for (int i = 0; i < n; ++i) if (i % 2) while (s[i] - '0') s[i]--, f.push_back({ -1, -1 }); else f.push_back({ id, s[i] - '0' }), id++; n = f.size(); for (int j = n - 1; j >= 0; --j) { if (f[j].first <= -1) continue; bool ok = 0; for (int i = 0; i < j; ++i) { if (f[i].first == -1) { int len = 0, oi = i; while ((f[i].first == -1) && (i < j)) { len++; if (len >= f[j].second) { for (; oi < i; ++oi) f[oi] = { -2,-2 }; f[i] = f[j]; f[j] = { -1,-1 }; ok = 1; break; } i++; } i--; } if (ok) break; } } for (auto x : f) { cout << x.first << " " << x.second << endl; } int ans = 0, i = 0; for (auto x : f) if (x.first > -1) { while (x.second--) ans += (x.first * i), i++; } cout << ans; }
Editor is loading...
Leave a Comment