#include<bits/stdc++.h>
using namespace std;
int n;int heap_size;
int a[100005],b[100005];
struct node{
int s;
int numa;
}heap[100005];
void shift_up(int rt){
while(rt>1&&heap[rt].s<heap[rt>>1].s)
{
swap(heap[rt],heap[rt/2]);
rt/=2;
}
}
void push_down(int rt)
{
int min1=rt;
if(rt*2<=heap_size&&heap[rt*2].s<heap[rt].s)
min1=rt*2;
if(rt*2+1<=heap_size&&heap[rt*2+1].s<heap[rt].s)
min1=rt*2+1;
if(rt!=min1)
{
swap(heap[rt].s,heap[min1].s);
push_down(min1);
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=1;i<=n;i++)
{
cin>>b[i];
}
for(int i=1;i<=n;i++)
{
heap_size++;
heap[heap_size].s=a[1]+b[i];
heap[heap_size].numa=1;
shift_up(i);
}
return 0;
}
搞点有个性的开头~