求助:各位巨佬们,帮帮蒟蒻看看代码哪里错了吧
#include <bits/stdc++.h>
using namespace std;
int to[111111];
queue <int> q1,q2;
inline int read()
{
int a=0,b=1;
char c=getchar();
while (c<'0'||c>'9')
{
if (c=='-')
{
b=-1;
c=getchar();
}
}
while (c>='0'&&c<='9')
{
a=(a<<3)+(a<<1)+c-'0';
c=getchar();
}
return a*b;
}
int add()
{
int x;
if (q2.empty()||!q1.empty()&&q1.front()<q2.front())
{
x=q1.front();
q1.pop();
}
else
{
x=q2.front();
q2.pop();
}
return x;
}
int main()
{
int n;
n=read();
for (int i=1;i<=n;i++)
{
int x;
x=read();
to[x]++;
}
for (int i=1;i<=100000;i++)
{
while (to[i])
{
to[i]--;
q1.push(i);
}
}
int ans=0;
for (int i=1;i<n;i++)
{
int c=add();
int d=add();
ans+=c+d;
q2.push(c+d);
}
cout<<ans;
return 0;
}