P4447, 为什么WA了一个呢?求教!
  • 板块题目总版
  • 楼主jping
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/2/1 14:53
  • 上次更新2023/10/24 02:13:53
查看原帖
P4447, 为什么WA了一个呢?求教!
776599
jping楼主2023/2/1 14:53
#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
map<int,int>ma;
int a[100001],b[100001];
int main(){
	int n,t,cnt,p,ans;
	cin>>n;
	for(int i=0;i<n;i++)cin>>a[i];
	sort(a,a+n);
	b[0]=a[0];
	ma[a[0]]++;
	t=1;
	for(int i=1;i<n;i++){
		if(a[i]>a[i-1]){
			b[t]=a[i];
			t++;
		}
		ma[a[i]]++;
	}
	ans=1e9;
	for(int i=0;i<t;i++){
		while(ma[a[i]]>0){
			p=a[i];			
			ma[p]--;
			cnt=1;
			while(ma[p+1]>ma[p]){
				p++;
				ma[p]--;
				cnt++;
			}
			ans=min(ans,cnt);
		}
		if(ans==1)break;
	}
	cout<<ans;
	return 0;
}

2023/2/1 14:53
加载中...