#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int N=1000010*2;
struct numtree
{
int x;
int y;
int sum;
}tree[N];
int a[N];
int b[N];
int len=0;
void put(int x,int y)
{
len++;
tree[len].x =x;
tree[len].y =y;
tree[len].sum =a[x]+b[y];
int son=len;
while(son>1)
{
int fa=son/2;
if (tree[son].sum >=tree[fa].sum )
return;
swap(tree[son],tree[fa]);
son=fa;
}
}
int get()
{
int x=tree[1].x;
int y=tree[1].y;
cout<
tree[1]=tree[len--];
int fa=1;
while(fa*2
{
int son=fa*2;
if (son+1tree[son+1].sum )son++;
if (tree[son].sum >=tree[fa].sum )break;
swap(tree[son],tree[fa]);
fa=son;
}
put(x,y+1);
//return;
}
int main()
{
int n;
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++)
put(i,1);
for (int i=1;i<=n;i++)
get();
return 0;
}

各位大佬,请问下面代码为什么运行错误?
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-