第二题代码如下: #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=2e5+10; int n,a[N]; vector<int>b,c; map<int,int>mp; ll sum; int main() { cin>>n; for(int i=0;i<n;i++){ cin>>a[i]; if(mp[a[i]]>0){ c.push_back(a[i]); } else{ b.push_back(a[i]); } mp[a[i]]++; } sort(b.begin(),b.end()); for(int i=0;i<n;i++){ if(i<b.size())a[i]=b[i]; else a[i]=c[i-b.size()]; } int mx=0; for(int i=0;i<n;i++){ if(a[i]==mx){ mx=a[i]+1; } sum+=mx; } cout<<sum<<endl; for(int i=0;i<n;i++){ if(i)cout<<" "; cout<<a[i]; } }
点赞 评论

相关推荐

10-30 19:23
已编辑
山东大学(威海) C++
牛至超人:其实简历是不需要事无巨细的写的,让对方知道你有这段经历就行了,最重要的是面试的时候讲细讲明白
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务