求助
查看原帖
求助
257563
Harry_8810楼主2020/10/3 20:54

RT,康了好久,硬是找不出错

#include<bits/stdc++.h>
using namespace std;
struct node
{
	int tired;
	int Long;
}h[100005];
bool hhhc(node a,node b)
{
	return a.tired>b.tired;
}
int main()
{
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	int n;
	cin>>n;
	int maxl=-10,maxln;
	for(int i=0;i<n;i++)
	{
		scanf("%d",&h[i].Long);
	}
	for(int i=0;i<n;i++)scanf("%d",&h[i].tired);
	sort(h,h+n,hhhc);
	for(int i=0;i<n;i++)
	{
		if(maxl<h[i].Long)
		{
			maxl=h[i].Long;
			maxln=i;
		}
	}
	for(int i=0;i<n;i++)
	{	
		int Max=-10,Min=1000000,Minm,sum=0;
		for(int j=0;j<=i;j++)
		{
			Max=max(Max,h[j].Long);
			sum+=h[j].tired;
			if(Min>h[j].tired)
			{
				Min=h[j].tired;
				Minm=j;
			}
		}
		int t1=Max*2+sum;
		int t2=maxl*2+sum-h[Minm].tired+h[maxln].tired;
		printf("%d\n",max(t1,t2));
	}                       
	for(int i=0;i<n;i++)cout<<h[i].tired<<" ";
	return 0;
}

2020/10/3 20:54
加载中...