感觉代码没有问题啊,测试了几组数据都通过了,然后居然全红,求助大佬
查看原帖
感觉代码没有问题啊,测试了几组数据都通过了,然后居然全红,求助大佬
346951
jjb_coder楼主2020/8/2 17:42
#include<stdio.h>
#include<math.h>
int main(void)
{
	//思路:把每个按降序排列,在做某一科目时,先做时间最长的题目和时间第二长的题目,
	//然后会有剩余时间,在和时间第三长的一起做,依此类推,以0作为结束依据 
	int count[4][21]={0};
	int s[4];
	int i,j,t,k,max,min_time=0;
	for(i=0;i<4;i++)
		scanf("%d",&s[i]);
	for(i=0;i<4;i++)
		for(j=0;j<s[i];j++)
			scanf("%d",&count[i][j]);
	
	//整体降序处理
	for(i=0;i<4;i++)
	{	
		for(k=0;k<s[i];k++)
		{	
			max=count[i][k];	
			for(j=k;j<s[i];j++)
			{
				if(max<count[i][j])
				{
					t=max;
					max=count[i][j];
					count[i][j]=t;
					count[i][k]=max;
				}
			}	
		}
	}
	
	//开始计算 
	for(int i=0 ;i<4;i++)
	{
		j=0;
		t=count[i][0];
		while(count[i][j+1])
		{
			k=(t<count[i][j+1])?t:count[i][j+1]; //三目运算符必须直接跟等号 
			min_time=min_time+k;
			t=abs(t-count[i][j+1]);
			j++;
		} 
		min_time=t+min_time;
	} 
	printf("%d",min_time);
	return 0; 
}


2020/8/2 17:42
加载中...