Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define pb push_back
- using namespace std;
- ifstream in("ou.in");
- ofstream out("ou.out");
- typedef long long ll;
- const int MOD = 1e9 + 7;
- int main() {
- ll n; in >> n;
- vector < ll > v(n + 5), mars(n + 5, 0);
- for (ll i = 1; i <= n; i++) {
- in >> v[i];
- if (i == 1 || i == n) continue;
- ll max_case = v[i] / 2;
- ll min_case = min(n - i, i - 1);
- ll cas = min(max_case, min_case);
- if (cas == 0) continue;
- ll add = v[i] / (cas * 2);
- v[i] -= add * (cas * 2);
- ll L = i - cas;
- ll R = i + cas;
- mars[L] += add;
- mars[i] -= add;
- mars[i + 1] += add;
- mars[R + 1] -= add;
- }
- ll prefix = 0;
- for (int i = 1; i <= n; i++) {
- prefix += mars[i];
- out << prefix + v[i] << " ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment