3RE 2WA 求助..
查看原帖
3RE 2WA 求助..
141335
qwq2519楼主2020/10/20 15:31
#include<bits/stdc++.h>
#define rep(i,j,k) for(register int i(j);i<=k;++i)
using namespace std;

const int MAXX=100000000;
inline void read(int &x)
{
	x=0;
	int w=0;
	register char ch=getchar();
	while(ch>'9'||ch<'0')
		{
			ch=getchar();
			w|=ch=='-';
		}
	while (ch>='0'&&ch<='9')
		{
			x=x*10+ch-48;
			ch=getchar();
		}
	w?x=~(x-1):x;
}
inline int max(int a,int b)
{
	return a>b?a:b;
}

queue<int> date;
queue<int> a,b;
int n,m,q,u,v,t;
int f[MAXX];
int tot;
double p;

int main()
{
//	freopen("earthworm.in","r",stdin);
//	freopen("earthworm.out","w",stdout);
	read(n);
	read(m);
	read(q);
	read(u);
	read(v);
	read(t);
	p=(double) u*1.0/v*1.0;
	rep(i,1,n)
	read(f[i]);
	sort(f+1,f+n+1,greater<int>());
	rep(i,1,n) date.push(f[i]);
	rep(i,1,m) 
	{
		int maxn=-2147454,flag(0);
		if(date.size()&&date.front()>maxn) maxn=date.front(),flag=1;
		if(a.size()&&a.front()>maxn) maxn=a.front(),flag=2;
		if(b.size()&&b.front()>maxn) maxn=b.front(),flag=3;
		maxn+=(i-1)*q;
		switch (flag)
			{
				case 1:
				{
					date.pop();
					break;
				}
				case 2:
				{
					a.pop();
					break;
				}
				case 3:
				{
					b.pop();
					break;
				};
			}
		int x=maxn*p,y=maxn-x;
		if(!(i%t)) printf("%d ",maxn);
		a.push(x-i*q);
		b.push(y-i*q);
	}
	putchar('\n');

	for(int i(1); date.size()||a.size()||b.size(); ++i)
		{
			int maxn=-2147454,flag;
			if(date.size()&&date.front()>maxn)maxn=date.front(),flag=1;
			if(a.size()&&a.front()>maxn)maxn=a.front(),flag=2;
			if(b.size()&&b.front()>maxn)maxn=b.front(),flag=3;
			switch (flag)
				{
					case 1:
					{
						date.pop();
						break;
					}
					case 2:
					{
						a.pop();
						break;
					}
					case 3:
					{
						b.pop();
						break;
					};
				}
			if(!(i%t))
				printf("%d ",maxn+m*q);
		}
	return 0;
}

如题。。。。数组开够大了.

2020/10/20 15:31
加载中...