60分代码 dalao求救啊
查看原帖
60分代码 dalao求救啊
638402
C_Mao1楼主2023/3/14 20:50
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;

public class Main{
	static int[] s = new int[5];
	static ArrayList<Integer> a1 = new ArrayList(65);
	static ArrayList<Integer> a2 = new ArrayList(65);
	static ArrayList<Integer> a3 = new ArrayList(65);
	static ArrayList<Integer> a4 = new ArrayList(65);
	static int time_counts = 0;
	//函数是用来把每个题目集缩减到一个题并同时记录做题的时间
	static void f(ArrayList<Integer> a,int x) {
		Collections.sort(a,Collections.reverseOrder());
		//退出条件是——题目集就剩一道题
		while(a.get(1) != 0) {
			time_counts+= a.get(1);//每次加第二大的时间
			//每次能同时做两道题
			for(int i = 0; i <= 1;i++) {
				a.set(i,a.get(i)-a.get(1));
			}
			Collections.sort(a,Collections.reverseOrder());//降序升序让第一个最小 持续减最小的数直到数组只有一个数
		}
	}
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//输入四个习题所包含的题数
		for(int i = 1;i <= 4;i++){
			s[i] = sc.nextInt();
		}
		//输入每套题并减为1道题
		for(int i = 0;i < s[1];i++)
			a1.add(sc.nextInt());
		if(a1.size()>1)
			f(a1,1);
		
		for(int i = 0;i < s[2];i++)
			a2.add(sc.nextInt());
		if(a2.size()>1)
			f(a2,2);
		
		for(int i = 0;i < s[3];i++)
			a3.add(sc.nextInt());
		if(a3.size()>1)
			f(a3,3);
		
		for(int i = 0;i < s[4];i++)
			a4.add(sc.nextInt());
		if(a4.size()>1)
			f(a4,4);
		time_counts+=(a1.get(0)+a2.get(0)+a3.get(0)+a4.get(0));//加上最后剩下的四个题目
		System.out.println(time_counts);
	}
}
2023/3/14 20:50
加载中...