Untitled

 avatar
unknown
plain_text
2 years ago
1.4 kB
4
Indexable
#include <iostream>
using namespace std;


int arr[8][8];
int ard[8] = {0};
int ar[8][8];
int cnt = 0;

int dx[] = { -1, -1, -1, 1,  1,  1};
int dy[] = { -1,  0,  1, -1, 0 , 1};

bool check(int x1, int y1)
{
	for(int i = 1; i < 8; i++)
	{
		for(int j = 0; j < 6; j++)
		{
			int t = x1 + i * dx[j];
			int k = y1 + i * dy[j];
			if(t >= 0 && t < 8 && k >= 0 && k < 8)
			{
				if(ar[t][k] == 2)
				{
					return false;
				}
			}
		}
	}
	return true;
}


void xep_hau(int sum, int &max, int index)
{
	if(index == 8 )
	{
		
	   if(max < sum)
	    {
		   max = sum;
	    }
		return;
	}
	for(int j = 0; j < 8; j++)
	{
		if(check(index, j) == true)
		{
			ar[index][j] = 2;
			xep_hau(sum + arr[index][j], max, index + 1);
			ar[index][j] = 0;
		}
	}
}


int main()
{
	//freopen("input.txt", "r+", stdin);
	int testcase;
	cin >> testcase;
	for(int tc = 1; tc <= testcase; tc++)
	{
		int t1;
		cin >> t1;
		cout<<"Case #"<<tc<<endl;
		for(int tk = 1; tk <= t1; tk++)
		{
			cnt = 0;
			for(int i = 0; i < 8; i++)
			{
				for(int j = 0; j < 8; j++)
				{
					cin >> arr[i][j];
				}
			}
			for(int i  = 0; i < 8; i++)
			{
				for(int j = 0; j < 8; j++)
				{
					ar[i][j] = 0;
				}
			}
			int sum = 0;
			int max = 0;
			xep_hau(sum, max, 0);
			cout<<max<<endl;
		}
	}
}
Editor is loading...