#include #include #include #include using namespace std; int N; main() { cin>>N; setS; S.insert(0); S.insert(2e5+1); priority_queue >P; P.push(make_pair(2e5+1,0)); int ans=0; vector >upd; for(int i=0;i>A; auto it=S.upper_bound(A); it--; if(*it==A)continue; int d=A-*it; { upd.clear(); while(P.top().first>d) { pairp=P.top(); P.pop(); P.push(make_pair(d,p.second)); upd.push_back(make_pair(p.first-d,p.second+d)); S.insert(p.second+d); } for(pair&p:upd)P.push(p); } ans++; } cout<