【求助】深搜runtime error
查看原帖
【求助】深搜runtime error
472984
tylor楼主2021/2/4 20:41
import java.util.*;

public class Main {

	public static void main(String[] args) {
		int sum1=0;
		Scanner IN=new Scanner(System.in);
		CheatExam a=new CheatExam(IN.nextInt(),IN.nextInt(),IN.nextInt(),IN.nextInt());
        a.review(a.N1,1,a.timen1,1);
        a.review(a.N2,1,a.timen2,2);
        a.review(a.N3,1,a.timen3,3);
        a.review(a.N4,1,a.timen4,4);
        for(int i=1;i<=4;i++)
        	sum1=sum1+a.min[i];
        System.out.println(sum1);
        
        IN.close();
	}
}

class CheatExam{
	int N1,N2,N3,N4,suma,sumb,sum;//N为每科目题数,suma左脑总时间,sumb是右脑总时间
	int[] timen1,timen2,timen3,timen4;
	int[] min= {0,1000,1000,1000,1000};
	boolean[] marked=new boolean[40];
	boolean[] sign=new boolean[40];
	Scanner in=new Scanner(System.in);
	public CheatExam(int n1,int n2,int n3,int n4) {
		N1=n1; N2=n2; N3=n3; N4=n4;
		timen1=new int[N1+1];
		timen2=new int[N2+1];
		timen3=new int[N3+1];
		timen4=new int[N4+1];

		for(int i=1;i<=N1;i++) 
			timen1[i]=in.nextInt();
		
	    for(int i=1;i<=N2;i++) 
		    timen2[i]=in.nextInt();
	   
	    for(int i=1;i<=N3;i++) 
			timen3[i]=in.nextInt();
		
	    for(int i=1;i<=N4;i++) 
			timen4[i]=in.nextInt();
		
	    in.close();
	    }
	    
	
	public void review(int N,int x,int[] a,int m) {//共N题,在第x题,该科目每题时间数组a,计算出总时间放于min数组m位置
		for(int i=1;i<=2&&x<=N;i++) {
			if(!marked[x]) sign[x]=!sign[x];
			marked[x]=true;
			review(N,x+1,a,m);
			marked[x]=false;
		}
			for(int i=1;i<=N;i++) {
				if(sign[i]) suma=suma+a[i];
				if(!sign[i]) sumb=sumb+a[i];
			}
		
		if(min[m]>Math.max(suma, sumb)) min[m]=Math.max(suma, sumb);
		suma=0;sumb=0;
	}
}

为什么会runtime error,各位大佬帮帮萌新

2021/2/4 20:41
加载中...