#6 #13 TLE 90pts 求助
查看原帖
#6 #13 TLE 90pts 求助
1126361
zzx0714楼主2023/10/5 10:39
#include<bits/stdc++.h>
using namespace std;
priority_queue<int>a;
int n,m,q,u,v,t,tmp,sum=0;
inline int read()
{
	int n=0,f=1;
	char c=getchar();
	while(c<'0' || c>'9')
	{
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0' && c<='9') n=(n<<3)+(n<<1)+(c^48),c=getchar();
	return n*f;
}
inline void write(int x)
{
	if(x<0) putchar('-'),x=-x;
	if(x>9) write(x/10);
	putchar(x%10^48);
	return;
}
int main()
{
	int i;
	n=read(),m=read(),q=read(),u=read(),v=read(),t=read();
	double p=u/1.0/v;
	for(i=1;i<=n;++i) cin>>tmp,a.push(tmp);
	for(i=1;i<=m;++i)
	{
		tmp=a.top(),a.pop(),tmp+=sum;
		if(!(i%t)) write(tmp),putchar(' ');
		int new1=floor(p*(1.0*tmp)),new2=tmp-new1;
		new1-=(sum+q),new2-=(sum+q);
		a.push(new1),a.push(new2);
		sum+=q;
	}
	puts("");
	i=0;
	while(!a.empty()) 
	{
		i++,tmp=a.top(),a.pop();
		if(i%t==0) write(tmp+sum),putchar(' ');
	}
	puts("");
}

优先队列超时求助。

2023/10/5 10:39
加载中...