哪里有错
  • 板块灌水区
  • 楼主xu_zhihao
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/26 22:49
  • 上次更新2023/11/27 14:22:12
查看原帖
哪里有错
1063855
xu_zhihao楼主2023/11/26 22:49
#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=0;j<=cnt;j++)
			{
				if(chupai[j]>a[i])
				{
					w=j;
					break;
				}
			  }*/
			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]<<" ";
		}
	}
}

外网排序题

2023/11/26 22:49
加载中...