#include <bits/stdc++.h> using namespace std; long long n,ans=0; long long a[100005]; struct node{ int k,sum; }; int main(){ cin>>n; int num=0; node maxn={0,-1}; for(int i=1;i<=n;i++){ cin>>a[i]; // ma.sum=max(a[i],ma.sun); if(maxn.sum<a[i]){ maxn.sum=a[i]; maxn.k=i; } } // ans+=a[ma.k]; // a[ma.k]=-1; // num++; // node maxn={-1,-1}; for(int i=1;i<=n;i++){ ans+=maxn.sum; cout<<ans<<endl; a[maxn.k]=-1; maxn.sum=-1; for(int i=1;i<=n;i++){ cout<<a[i]<<" "<<ans<<endl; if(a[i]==-1) continue; a[i]=(int)sqrt(a[i]); if(maxn.sum<a[i]){ maxn.sum=a[i]; maxn.k=i; } } } cout<<ans<<endl; return 0; }