#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define p1 2*p
#define p2 p1+1
#define ll long long
#define pb push_back
#define LFT p1,L,Mid
#define pf push_front
#define Mid ((L+R)/2)
#define RGT p2,Mid+1,R
#define pi pair<int,int>
#define pii pair<pi,pi>
#define deb(x) cout<<#x<<"="<<x<<endl
#define go ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
const int N = 1e6 + 7;
int la[N];
void seive()
{
for(int i=0; i<N; i++)
la[i]=i;
for(int i=2; i<N; i++)
if(la[i]==i)
for(int j=i+i; j<N; j+=i)
la[j]=i;
}
ll b(int x)
{
ll ret=0;
while(x)
{
if(x&1)
ret++;
x/=2;
}
return ret;
}
void print(vector <ll> & a,int level)
{
return;
cout<<level<<endl;
for(int x : a)
cout<<x<<" ";
cout<<"\n============\n";
}
int main()
{
go;
//1
int n;
cin>>n;
int originalN=n;
vector <ll> a(n);
for(int i=0; i<n; i++)
cin>>a[i];
a.pb(0);
print(a,1);
// end 1
// 2
for(int i=0; i+1<a.size(); i++)
a[i]=max(a[i],a[i+1]);
print(a,1);
// end 2
// 3 and 4
step3:
if(a.size()%2==0)
{
n=a.size()/2;
reverse(a.begin(),a.begin()+n);
reverse(a.begin()+n,a.begin()+n+n);
}
else
{
ll sum=0;
while(a.size() && sum+a.back()<=originalN)
{
sum+=a.back();
a.pop_back();
}
goto step3;
}
print(a,4);
// end 3 and 4
// 5
step5:
a.pb(3);
a.pb(2);
a.pb(1);
print(a,5);
// end 5
// 6
for(int i=0; i<a.size(); i++)
{
int len=a.size();
len--;
if(a[i]>a[len])
swap(a[i],a[len]);
}
print(a,6);
// end 6
// 7
a[0]=1031;
print(a,7);
// end 7
// 8
seive();
for(int i=0; i<a.size(); i++)
a[i]=la[a[i]];
//print(a,8);
// end 8
// 9
sort(a.rbegin(),a.rend());
//print(a,9);
// end 9
// 10
for(int i=0; i<a.size(); i++)
a[i]=a[i]%16384;
//print(a,10);
// end 10
// 11
for(int i=1; i+2<a.size(); i++)
{
if(a[i]==6 && a[i+1]==7 && a[i+2]==9)
swap(a[i],a[i-1]);
}
//print(a,11);
// end 11
// 12
for(int i=0;i<a.size();i++)
a[i]*=b(a[i]);
//print(a,12);
// end 12
// 13
//print(a,13);
// end 13
if(a.size()%2==1)
goto step5;
if(a[0]==0 || a.back()==0)
a={1,2,3,4,5};
ll ans=0;
for(ll i=1;i<=a.size();i++)
ans+=a[i-1]*i;
cout<<ans;
return 0;
}
Copy