#include using namespace std; typedef long long ll; void fup(vector &v,int x,ll y){ for (int i=x; i &v,int x){ ll y=0; for (int i=x; i>=0; --(i&=i+1)) y+=v[i]; return y; } int main(){ int n; cin>>n; vector v(n); for (auto &i: v) cin>>i; sort(v.begin(),v.end()); vector f(n); for (int i=0; i breaks; for (int i=0; i1){ group_start=a; group_end=n-1; } else{ group_start=*++breaks.rbegin(); group_end=a; } int group_mid=group_start+(group_end-group_start+1)/2; increase(0,group_start); if (group_mid!=group_end) increase(group_mid,group_end); } cout<<(res - 1)<