Untitled

 avatar
unknown
plain_text
2 years ago
1.6 kB
5
Indexable
package Maximum_Score_Queen;

import java.io.FileInputStream;
import java.util.Scanner;

public class Maximum_Score_Queen {
	static int [][] map;
	static int N = 8;
	static int sum;
	static int max;
	static int[] arr;
	static int step;
	static int[][] arrHau;
	
	static boolean check(int x, int y) {
		for (int i = 0; i < y; i++) {
			if (arr[i] == x) return false;
			if(arr[i]-x == y- i|| x- arr[i]== y-i) return false;
		}
		return true;
	} 
	static void sinh(int r) {
		if (r == 8) {
			for (int i = 0; i < 8; i++) {
				arrHau[step][i] = arr[i];
			}
			step++;
			return;
		}
		for (int i = 0; i < 8; i++) {
			if (check (i, r)) {
				arr[r] = i;
				sinh(r+1);
			}
		}
	}
	
	public static void main(String[] args) throws Exception {
		System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Maximum_Score_Queen//queen.txt"));
		Scanner sc = new Scanner(System.in);
		arr = new int [N];
		arrHau = new int [100][N];
		sinh(0);
		int T = sc.nextInt();
		
		for (int test_case = 1; test_case <= T; test_case++) {
			int n = sc.nextInt();
			System.out.println("Case #"+test_case );
			for (int k = 0; k < n; k++) {
				map = new int [N][N];
				
				max = 0;
				sum = 0;
				for (int i = 0; i < N; i++) {
					for (int j = 0; j < N; j++) {
						map[i][j] = sc.nextInt();
					}
				}
				int max=0;
				for(int h=0;h<step;h++){
					int sum=0;
					for(int i=0;i<8;i++){
						sum+= map[i][arrHau[h][i]];
					}
					if(sum>max) max=sum;
				}
				System.out.println(max);
			}
			
		}
	}

}
Editor is loading...