求调
查看原帖
求调
941575
Stars_visitor_tyw楼主2024/5/1 13:23
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t, n, x[15];
struct node
{
	int c, d;
}a[100005];
bool cmp(node x, node y)
{
	return x.d>y.d; 
}
int cnt[4], amx[4];
signed main()
{
	for(cin>>t;t;t--)
	{
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i].c;
		}
		for(int i=1;i<=n;i++)
		{
			cin>>a[i].d;
		}
		double cnt1=0.0;
		for(int i=1;i<9;i++)
		{
			cin>>x[i];
			cnt1+=x[i]*1.0;
		}
		sort(a+1,a+1+n,cmp);
		cnt[1]=cnt[2]=cnt[3]=0;
		int cntc=0;
		double cnt2=0.0;
		amx[2]=1, amx[3]=3, amx[1]=100000000;
		for(int i=1;i<=n;i++)
		{
			if(cnt[a[i].c]<amx[a[i].c]&&cntc<8)
			{
				cnt[a[i].c]++,cntc++;
				cnt2+=a[i].d*1.0;
			}
		}
		if(cntc!=8||cnt[3]==0)
		{
			cout<<"No\n";
			continue;
		}
		cnt2/=8.0;
		cnt1/=8.0;
		if(cnt2>=cnt1-2.0)
		{
			cout<<"Yes\n";
		}
		else
		{
			cout<<"No\n";
		}
	}
	return 0;
}
2024/5/1 13:23
加载中...