3 条题解

  • 0
    @ 2025-10-16 20:51:50
    #include<stdio.h>
    
    int main(){
    	
    	int n,m;
    	scanf("%d %d",&n,&m);
    	
    	int i,j;
    	int tot[50];
    	for(i=0;i<n;i++)
    	{
    		scanf("%d",&tot[i]);
    	}
    	//冒泡排序 
    	for(i=0;i<n-1;i++)
    	{
    		for(j=0;j<n-1;j++)
    		{
    			if(tot[j]>tot[j+1])
    			{
    				int temp=tot[j];
    				tot[j]=tot[j+1];
    				tot[j+1]=temp;
    			}
    		}
    	}
    	//水龙头归零 
    	int water[50];
    	for(i=0;i<m;i++){
    		water[i]=0;
    	}
    	//贪心 
    	int sum=0;
    	int minsize;
    	
    	for(i=0;i<n;i++){
    		minsize=0;
    		for(j=0;j<m;j++){
    			if(water[j]<water[minsize]){
    				minsize=j;
    			}
    		}
    		water[minsize]+=tot[i];
    		sum+=water[minsize];
    	}
    	printf("%d",sum);
    	
    	return 0;
    	
    }
    

    信息

    ID
    18
    时间
    1000ms
    内存
    512MiB
    难度
    6
    标签
    递交数
    1091
    已通过
    364
    上传者