#include <stdio.h>
#include <vector>
#include <string>
#include <functional>
#include <cassert>
#include <cstdlib>

std::string solve(const std::vector<int>& a) {
    const int n = a.size();
    int sum = 0;
    for (auto& it : a) {
        assert(it >= 0);
        sum += it;
    }
    assert(0 <= sum && sum <= 1e9);
    if (sum == 0) {
        return std::string(n, '1');
    }
    std::function<bool(int)> is_possible = [&](int number) {
        const int need_sum = sum / number;
        assert(need_sum * number == sum);
        // Найдем такой отрезок [l, r), (0 <= l < r < n), сумма в котором равна need_sum:
        int r = 0, l = 0, curr_sum = 0, rem = sum;
        while (l < n) {
            while (r < n && curr_sum + a[r] <= need_sum) {
                curr_sum += a[r];
                ++r;
            }
            if (curr_sum == need_sum) {
                break;
            }
            curr_sum -= a[l];
            ++l;
        }
        if (curr_sum != need_sum) {
            return false;
        }
        rem -= need_sum;
        assert(0 <= l && l < r && r <= n);
        // Найдем все оставшиеся отрезки:
        --number, curr_sum = 0;
        int i = r % n;
        while (i != l) {
            curr_sum += a[i];
            if (curr_sum > need_sum) {
                return false;
            } else if (curr_sum == need_sum) {
                --number;
                rem -= need_sum;
                curr_sum = 0;
            }
            ++i;
            if (i >= n) {
                i -= n;
            }
        }
        assert(rem == 0 && number == 0 && curr_sum == 0);
        return true;
    };
     
    std::string answ(n, '0');
     
    for (int i = 1; i * i <= sum; ++i) {
        const int j = sum / i;
        if (j * i == sum) {
            if (i <= n) {
                assert(answ[i-1] == '0');
                answ[i-1] += is_possible(i);
            }
            if (j <= n && j != i) {
                assert(answ[j-1] == '0');
                answ[j-1] += is_possible(j);
            }
        }
    }
    assert(answ[0] == '1');
    return answ;
}

int main() {
    int n;
    scanf("%d", &n);
    std::vector<int> a(n);
    for (auto& it : a) {
        scanf("%d", &it);
    }
    printf("%s\n", solve(a).c_str());
    return 0;
}