#define _USE_MATH_DEFINES #include using namespace std; //template #define rep(i,a,b) for(int i=(a);i<(b);i++) #define rrep(i,a,b) for(int i=(a);i>(b);i--) #define ALL(v) (v).begin(),(v).end() typedef long long int ll; const int inf = 0x3fffffff; const ll INF = 0x3fffffffffffffff; template inline bool chmax(T& a,T b){ if(a inline bool chmin(T& a,T b){ if(a>b){a=b;return 1;}return 0; } //template end int main(){ int n; scanf("%d",&n); vector a(n); rep(i,0,n)scanf("%d",&a[i]); int sum=0; rep(i,0,n)sum+=a[i]; vector div; for(int i=1;i*i<=sum;i++)if(sum%i==0){ div.push_back(i); if(i*i!=sum)div.push_back(sum/i); } sort(ALL(div)); for(int d:div){ bool f=1; stack st; rep(i,0,n){ int base=0; if(st.size())base=st.top(),st.pop(); base+=a[i]; if(base>d){f=0; break;} if(base==d)continue; else st.push(base); } if(f){printf("%d\n",(sum/d)); return 0;} } return 0; }