为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。

Sgu/165

来自NOCOW
< Sgu
跳转到: 导航, 搜索

贪心构造,如果你提交上去出现PE,说明你的答案WA了

先把所有身高减去2。。。

设 tot[i] 为答案顺序中 第 1 到 第i个人的身高和,那么对于所有i如果都有 fabs(tot[i])<0.05 那么任意一段之和不会大于0.1,然后就贪心构造

#include<iostream>
#include<utility>
#include<algorithm>
using namespace std;
typedef pair<double,int> Pr;
int n,st,en;double tp,sum;
Pr sz[6005];
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++){cin>>tp;tp-=2;sz[i]=Pr(tp,i);}
	sort(sz+1,sz+n+1);
	st=1;en=n;
	cout<<"yes"<<endl;
	for(int i=1;i<=n;i++)
		if(sum>=0) {cout<<sz[st].second<<" ";sum+=sz[st++].first;}
		else {cout<<sz[en].second<<" ";sum+=sz[en--].first;}
	return 0;
}
</sorce>
个人工具