大神求助(关注)
题面
输入
第一行一个整数n,表示一个长度为n的序列
第二行n个数,表示要排序的数。
输出
输出n个数,排序后的结果。
蒟蒻错误代码
#include<bits/stdc++.h>
using namespace std;
int chupai[20010];
int pai[20010];
int a[200010];
map<long long int ,long long int > mp;
int N=1e9;
int main()
{
int n;
cin>>n;
int cnt=0;
for(int i=0;i<n;i++)
{
cin>>a[i];
if(mp[a[i]+N]==0)
{
int l=0,r=cnt,best=cnt+1;
while(l<=r)
{
int mid=(l+r)/2;
if(chupai[mid]>a[i])
{
best=mid;
r=mid-1;
}
else
{
l=mid+1;
}
}
for(int j=cnt+1;j>best;j--)
{
chupai[j]=chupai[j-1];
}
chupai[best]=a[i];
cnt++;
}
mp[a[i]+N]++;
}
int sum=0;
for(int i=0;i<=cnt;i++)
{
for(int j=0;j<mp[chupai[i]+N];j++)
{
cout<<chupai[i]<<" ";
}
}
}
求调,关注