求助为什么CE
  • 板块学术版
  • 楼主yinbe2
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/8/16 11:32
  • 上次更新2024/8/16 14:28:28
查看原帖
求助为什么CE
1285691
yinbe2楼主2024/8/16 11:32

模拟赛代码,本地AC,测评CE

#include<iostream>
#include<algorithm>
#include<map> 
#include<set>
using namespace std;
int n,m,b[100005],wowo_paimin,a[100005];
string wowo;
struct paimin
{
	int id,zidian;
	mutable int fen;
	const operator<(const paimin &o)const
	{
		if(fen!=o.fen)return fen<o.fen;
		return id>o.id;
	}
}paixu[100005];
map<string,int>mp;
map<string,int>zidi; 
multiset<paimin>s;
multiset<paimin>fuben;
bool cmp(int a1,int a2)
{
	return a1>a2;
}
string na[100005];
int main()
{
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		cin>>na[i];
		scanf("%d",&a[i]);
		mp[na[i]]=i;
	}
	int bianhao=1;
	for(auto it=mp.begin();it!=mp.end();it++)
	{
		s.insert({it->second,bianhao,a[it->second]});
		zidi[na[it->second]]=bianhao;
		bianhao++;
	}
	scanf("%d",&m);
	for(int i=1;i<=m;i++)
	{
		scanf("%d",&b[i]);
	}
	sort(b+1,b+m+1,cmp);
	cin>>wowo;
	fuben=s;
	auto it=s.lower_bound({mp[wowo],zidi[wowo],a[mp[wowo]]});
	it->fen+=b[1];
	it=s.begin();
	for(int i=2;i<=m;i++)
	{
		if(it->id!=mp[wowo])
		{
			it->fen+=b[i];
		}
		else
		{
			i--;
		}
		it++;
	}
	it=s.begin(); 
	for(int i=1;i<=n;i++)
	{
		paixu[i]=*it;
		it++;
	}
	s.erase(s.begin(),s.end());
	for(int i=1;i<=n;i++)
	{
		s.insert(paixu[i]);
	}
	wowo_paimin=1;
	for(auto it=--s.end();;it--)
	{
		if(it->id==mp[wowo])break;
		wowo_paimin++;
	}
	printf("%d ",wowo_paimin);
	s=fuben;
	if(m<n)
	{
		auto it=s.lower_bound({mp[wowo],zidi[wowo],a[mp[wowo]]});
		int x=1;
		for(auto it_xiao=s.begin();it_xiao!=it;it_xiao++)
		{
			if((it_xiao->fen+x>it->fen)||(it_xiao->fen+x==it->fen&&it_xiao->zidian<it->zidian))
			{
				it_xiao->fen+=b[x];
				x++;
			}
		}
		it=s.begin(); 
		for(int i=1;i<=n;i++)
		{
			paixu[i]=*it;
			it++;
		}
		s.erase(s.begin(),s.end());
		for(int i=1;i<=n;i++)
		{
			s.insert(paixu[i]);
		}	
		wowo_paimin=1;
		for(auto it=--s.end();;it--)
		{
			if(it->id==mp[wowo])break;
			wowo_paimin++;
		}
		printf("%d",wowo_paimin);		
	}
	else
	{
		auto it=s.lower_bound({mp[wowo],zidi[wowo],a[mp[wowo]]});
		int id=it->id,zidian=it->zidian,fen=it->fen;
		fen+=b[m];
		s.erase(it);
		s.insert({id,zidian,fen});
		it=s.lower_bound({mp[wowo],zidi[wowo],a[mp[wowo]]+b[m]});
		int x=1;
		for(auto it_xiao=s.begin();it_xiao!=it;it_xiao++)
		{
			if((it_xiao->fen+x>it->fen)||(it_xiao->fen+x==it->fen&&it_xiao->zidian<it->zidian))
			{
				it_xiao->fen+=b[x];
				x++;
			}
		}
		it=s.begin(); 
		for(int i=1;i<=n;i++)
		{
			paixu[i]=*it;
			it++;
		}
		s.erase(s.begin(),s.end());
		for(int i=1;i<=n;i++)
		{
			s.insert(paixu[i]);
		}	
		wowo_paimin=1;
		for(auto it=--s.end();;it--)
		{
			if(it->id==mp[wowo])break;
			wowo_paimin++;
		}
		printf("%d",wowo_paimin);						
	}
	return 0;
}
/*
3
teama 10
teamb 20
teamc 40
2
10 20
teama


2
teama 10
teamb 10
2
10 10
teamb
*/
2024/8/16 11:32
加载中...