#include <bits/stdc++.h>
 
using namespace std;
 
#define pb push_back
#define fo(i, n) for(int i = 1; i <= n; ++i)
 
typedef long long ll;
 
const int N = 500500;
const int mod = 1e9 + 7;
 
int n, s, a[N];
vector<int> d;
int ans[N];
 
map<int, int> w;
 
inline int solve(int k) {
    int one = s / k, curs = 0, res = 0;
    w.clear();
    curs = w[0] = 0;
    for(int i = 1; i <= n; ++i)  {
        curs += a[i];
        if(w.count(curs - one)) {
            w[curs] = w[curs - one] + 1;
            if(i < n && k - 1 == w[curs] || i == n && k == w[curs]) return 1;
        } else w[curs] = 0;
    }
    return 0;
}
 
int main() {
 
    ios::sync_with_stdio(0); cin.tie(0);
    cin >> n;
    fo(i, n) cin >> a[i], s += a[i];
    if(s == 0) {
        fo(i, n) cout << 1;
        return 0;
    }
    fo(i, n) a[i + n] = a[i];
    for(int i = 1; i * i <= s; ++i)
        if(s % i == 0) {
            d.pb(i);
            if(i * i != s) d.pb(s / i);
        }
    for(int one : d) {
        int k = s / one;
        if(k <= n) ans[k] = solve(k);
    }
    fo(i, n) cout << ans[i];
    return 0;
}