求助
查看原帖
求助
699410
yuchangzhu楼主2023/5/31 19:47

求助:各位巨佬们,帮帮蒟蒻看看代码哪里错了吧

#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;
}
2023/5/31 19:47
加载中...