救救萌....新....把
  • 板块P5462 X龙珠
  • 楼主WindAndSnow
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/3/27 15:56
  • 上次更新2023/11/5 01:30:59
查看原帖
救救萌....新....把
498456
WindAndSnow楼主2021/3/27 15:56

这道题目调了7天了没调出来,麻烦各位大神看一看,谢谢!

#include<bits/stdc++.h>
#define N 100009
using namespace std;
typedef long long ll;
ll n,x[N];
struct edge{
	ll x,id;
	bool operator<(const edge&a) const{return x>a.x;}
};
set<edge> s;
map<ll,ll> m;
vector<ll> v;
int main(){
	cin>>n;
	for(ll i=1;i<=n;++i){cin>>x[i];s.insert((edge){x[i],i});m[i]=x[i];}
	while(!s.empty()){
		edge x=(*s.begin());
		v.push_back(x.x);v.push_back(m[x.id+1]);
		s.erase((edge){m[x.id+1],x.id+1});s.erase((edge){x.x,x.id});
	}
	for(ll i=0;i<v.size()-1;++i) cout<<v[i]<<" ";
	cout<<v[v.size()-1];
	return 0;
}
2021/3/27 15:56
加载中...