1 条题解

  • 1
    @ 2023-10-15 11:32:58
    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    #include<queue>
    #include<cstring>
    using namespace std;
    int arr[100005];
    queue<int>qk;
    queue<int>qd;
    queue<int>qm;
    queue<int>qf;
    int k,d,m,f;
    int q;
    int q1,q2,q3;
    double res;
    bool cmp(int c1,int c2){
    	return c1>c2;
    }
    int main(){
    	scanf("%d %d %d %d",&k,&d,&m,&f);
    
    	for(int i=0;i<k;i+=1){
    		scanf("%d",&arr[i]);
    	}
    	sort(arr,arr+k,cmp);
    	for(int i=0;i<k;i+=1){
    		qk.push(arr[i]);
    	}
    	memset(arr,0,sizeof(arr));
    
    	for(int i=0;i<d;i+=1){
    		scanf("%d",&arr[i]);
    	}
    	sort(arr,arr+d,cmp);
    	for(int i=0;i<d;i+=1){
    		qd.push(arr[i]);
    	}
    	memset(arr,0,sizeof(arr));
    
    	for(int i=0;i<m;i+=1){
    		scanf("%d",&arr[i]);
    	}
    	sort(arr,arr+m,cmp);
    	for(int i=0;i<m;i+=1){
    		qm.push(arr[i]);
    	}
    	memset(arr,0,sizeof(arr));
    
    	for(int i=0;i<f;i+=1){
    		scanf("%d",&arr[i]);
    	}
    	sort(arr,arr+f,cmp);
    	for(int i=0;i<f;i+=1){
    		qf.push(arr[i]);
    	}
    
    	cin >> q;
    	for(int i=1;i<=q;i+=1){
    		scanf("%d %d %d",&q1,&q2,&q3);
    		res = 0;
    
    		for(int j=1;j<=q1;j+=1){
    			res += qd.front();
    			qd.pop();
    		}
    
    		for(int j=1;j<=q2;j+=1){
    			res += qm.front();
    			qm.pop();
    		}
    
    		for(int j=1;j<=q3;j+=1){
    			res += qf.front();
    			qf.pop();
    		}
    
    		res+=qk.front();
    		qk.pop();
    
    		res = res*1.0/11;
    		printf("%.2lf\n",res);
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    2820
    时间
    1000ms
    内存
    250MiB
    难度
    2
    标签
    递交数
    5
    已通过
    4
    上传者