15分求助!!!!!!!!!!!!!!!!!
查看原帖
15分求助!!!!!!!!!!!!!!!!!
43763
Mistysun楼主2021/9/6 21:16
#include<bits/stdc++.h>
using namespace std;
int n,m,q,u,v,t,a[7000005],be1,be2,be3,q2,q3,ans1[7000005],ans[7000005];
int num,sum,b[7000005],c[7000005],s1,s2,sum1;
bool cmp(int a,int b)
{
	return a>b;
}
int main()
{
	scanf("%d%d%d%d%d%d",&n,&m,&q,&u,&v,&t);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
	} 
	sort(a+1,a+n+1,cmp);
	be1=1;
	be2=1;
	be3=1;
	q2=0;
	q3=0;
	num=0;
	for(int i=1;i<=m;i++)
	{
	
			int max1=max(max(a[be1],b[be2]),c[be3]);
			if(max1==a[be1])
				ans1[i]=a[be1]+(i-1)*q,be1++;
			else if(max1==b[be2])
				ans1[i]=b[be2]+(i-1)*q,be2++;
			else if(max1==c[be3])
				ans1[i]=c[be3]+(i-1)*q,be3++;
		q2++;
		q3++;
		s1=ans1[i]*u/v;
		s2=ans1[i]-s1;
		if(s1<s2)swap(s1,s2);
		b[q2]=s1-i*q;
		c[q3]=s2-i*q;
	}
	for(int i=be1;i<=n;i++)
	{
		num++;
		ans[num]=a[i]+(m)*q;
	}
	for(int i=be2+1;i<=q2;i++)
	{
		num++;
		ans[num]=b[i]+(m)*q;
	}
	for(int i=be3+1;i<=q3;i++)
	{
		num++;
		ans[num]=c[i]+(m)*q;
	}
	sort(ans+1,ans+num+1,cmp);
	for(int i=1;i<=m;i++)
	{
		if(i%t==0)
		{
			printf("%d ",ans1[i]);
		}
	}
	printf("\n");
	for(int i=1;i<=num;i++)
	{
		if(i%t==0)
		printf("%d ",ans[i]);
	}
	return 0;
}
2021/9/6 21:16
加载中...