#include using namespace std; #define mk make_pair #define st first #define nd second typedef long long lld; typedef __int128_t int128; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector v(n); for (int& i : v) cin >> i; vector > suf(n); suf.back() = mk(v.back() % 10, n - 1); for (int i = n - 2; i >= 0; i--) suf[i] = mk((suf[i + 1].st + v[i]) % 10, i); stable_sort(suf.begin(), suf.end()); vector odp(n, -1); for (int i = 0; i < suf.size() - 1; i++) { if (!v[suf[i].nd]) { odp[i] = 1; continue; } if (suf[i].st == suf[i + 1].st) { odp[suf[i].nd] = suf[i + 1].nd - suf[i].nd; } else if (!suf[i].st) { odp[suf[i].nd] = n - suf[i].nd; } } if (!v[suf.back().nd]) odp.back() = 1; for (int i = 0; i < n - 1; i++) cout << odp[i] << ' '; cout << odp.back(); cout << '\n'; return 0; }