代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define qwq ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
const int N = 100010;
namespace ioarray
{
auto read = [](int n, int *a)
{
for (int i = 1; i <= n; ++ i)
cin >> a[i];
};
void print(int n, int *a, string s)
{
for (int i = 1; i <= n; ++ i)
{
cout << a[i];
cout << s;
}
cout << endl;
}
}
using namespace ioarray;
int n, s[N], a[N];
bool vis[N];
struct node
{
int val = 0;
int idx = 0;
};
node ans;
signed main()
{
qwq;
cin >> n;
read(n, s);
read(n, a);
for (int i = 1; i <= n; ++ i)
{
if (s[i] * 2 + a[i] > ans.val)
ans.val = s[i] * 2 + a[i], ans.idx = i;
}
cout << ans.val << endl;
vis[ans.idx] = 1;
for (int i = 2; i <= n; ++ i)
{
node mini;
mini.val = -1;
for (int j = 1; j <= n; ++ j)
{
// cout << vis[j] << " ";
if (!vis[j])
if (a[j] > mini.val)
mini.val = a[j], mini.idx = j;
}
vis[mini.idx] = 1;
ans.val += mini.val;
// cout << "|" << mini.val << " " << mini.idx << endl;
if (ans.idx < mini.idx)
ans.val += 2 * (mini.idx - ans.idx);
cout << ans.val << endl;
}
return 0;
}