求助大佬为什么测试点本地能过,但是提交就是不对
查看原帖
求助大佬为什么测试点本地能过,但是提交就是不对
832977
Submerge69楼主2024/8/20 14:07
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+10;
int n;
int a[N];
queue<int> q,p;
int x,y;
int ans;
signed main(){
	cin>>n;
	int temp;
	for(int i=1;i<=n;i++){
		cin>>temp;
		a[temp]++;
	}
	for(int i=1;i<=N;i++){
		while(a[i]>0){
			a[i]--;
			q.push(i);
		}
	}
	for(int i=1;i<n;i++){//合并n-1次即可 
		if((q.front()<p.front()&&q.empty()==false)||p.empty()==true){
			x=q.front();
			q.pop();
		} else{
			x=p.front();
			p.pop();
		}
		
		if((q.front()<p.front()&&q.empty()==false)||p.empty()==true){
			y=q.front();
			q.pop();
		}else{
			y=p.front();
			p.pop();
		}
		ans+=(x+y);
		int temp=(x+y);
		p.push(temp);
	//	cout<<ans<<endl; 
	}
	cout<<ans;
	return 0;
}
2024/8/20 14:07
加载中...