题解
2025-10-01 21:54:30
发布于:广东
7阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define ll long long
const ll N=2e5+5;
ll a[N];
map<ll,vector<ll> >mp;
int main(){
freopen("merge.in","r",stdin);
freopen("merge.out","w",stdout);
ll n;
cin>>n;
for(ll i=1;i<=n;i++){
cin>>a[i];
mp[a[i]].pb(i);
}
for(auto p:mp){
vector<ll> v=p.second;
sort(v.begin(),v.end());
ll m=v.size();
for(ll i=1;i<m;i+=2){
a[v[i-1]]=0;
a[v[i]]*=2;
mp[a[v[i]]].pb(v[i]);
}
}
ll num=0;
for(ll i=1;i<=n;i++){
if(a[i]!=0){
num++;
}
}
cout<<num<<'\n';
for(ll i=1;i<=n;i++){
if(a[i]!=0){
cout<<a[i]<<' ';
}
}
fclose(stdin);
fclose(stdout);
}
这里空空如也
有帮助,赞一个