求调xD
查看原帖
求调xD
680434
shumu楼主2024/4/11 19:30
#include<bits/stdc++.h>
using namespace std;
int T,n,x[20],jz,fs,zs,t,v,vt;
double va,vx;
bool flagj,flagi;
struct NODE {
	int a,c;
}kp[20];
bool cmp(NODE x,NODE y) {
	return x.a>y.a;
}
int main() {
	cin>>T;
	while(T>0) {
		T--;
		memset(kp,0,sizeof(kp));
		memset(x,0,sizeof(x));
		jz=0;
		fs=0;
		zs=0;
		v=0;
		va=0;
		vx=0;
		vt=0;
		t=0x3f3f3f3f;
		flagj=false;
		flagi=false;
		cin>>n;
		for(int i=1;i<=n;i++) {
			cin>>kp[i].c;
		}
		for(int i=1;i<=n;i++) {
			cin>>kp[i].a;
		}
		for(int i=1;i<=8;i++) {
			cin>>x[i];
			vt+=x[i];
		}
		sort(kp+1,kp+1+n,cmp);
		for(int i=1;i<=n;i++) {
			if(kp[i].c==2) {
				if(jz<=1) {
					t=min(kp[i].a,t);
					v+=kp[i].a;
					jz++;
					zs++;
				}
			}
			else if(kp[i].c==3) {
				if(fs<=3) {
					flagj=true;
					t=min(t,kp[i].a);
					v+=kp[i].a;
					fs++;
					zs++;
				}
			}
			else {
				t=min(t,kp[i].a);
				v+=kp[i].a;
				zs++;
			}
			if(zs==8) {
				break;
			}
		}
		vx=vt/8;
		if(!flagj) {
			v-=t;
			for(int i=1;i<=n;i++) {
				if(kp[i].c==3) {
					v+=kp[i].a;
					flagi=true;
					break;
				}
			}
		}
		else {
			flagi=true;
		}
		if(!flagi) {
			cout<<"No";
		}
		else {
			va=v/8;
			if(va>=vx-2.00) {
				//cout<<"debug"<<va<<" "<<vx<<endl;
				cout<<"Yes";
			}
			else {
				cout<<"No";
			}
		}
		if(T!=0) {
			cout<<endl;
		}
	}
	return 0;
}
2024/4/11 19:30
加载中...