demo
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 214514;
int n,h[N],c[N],cl,op,ans,now;
vector<priority_queue<int,vector<int>,greater<int> > > v(11);
int kan(int H){
return floor((long double)(sqrt((long double)(floor((long double)(H)/2.0))+1.0)));
}
inline void input() {
cin>>n;
for(int i=1;i<=n;i++){
cin>>h[i];
cl=h[i],op=0;
while(cl>1){
cl=kan(cl);
op++;
}
c[i]=op;
v[op].push(i);
}
return;
}
inline void output() {
cout<<ans;
return;
}
inline void solve() {
input();
for(int i=7;i>=1;i--){
while(v[i].size()){
now=v[i].top();
while(v[i].top()==now&&v[i].size()){
v[i-1].push(now);
v[i].pop();
now++;
}
ans++;
}
}
output();
return;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
solve();
return 0;
}
感觉应该是
solve出了问题

