Code:
#include<bits/stdc++.h>
#define str to_string
using namespace std;
using ll=long long;
const int MAX=5e5+1;
int a[MAX],b[MAX],cnt=0;
void merge_sort(int l,int r){
cnt++;
if(l==r)return;
int mid=l+r>>1;
merge_sort(l,mid);
merge_sort(mid+1,r);
int i=l,j=mid+1,k=l;
while(i<=mid&&j<=r)
if(a[i]<a[j])b[k++]=a[i++];
else b[k++]=a[j++];
while(i<=mid)b[k++]=a[i++];
while(j<=r)b[k++]=a[j++];
for(int i=l;i<=r;i++)a[i]=b[i];
}
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
merge_sort(1,n);
cout<<cnt<<'\n';
return 0;
}