Untitled
unknown
plain_text
3 years ago
1.5 kB
6
Indexable
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
int N;
int arr[300][5];
int visited[300][5];
int dx[3] = { -1,-1,-1 };
int dy[3] = {-1, 0, 1};
int maxXu;
enum dn {
DI,
XU,
LO
};
void clear_visited() {
for (int i = 0; i < N; i++)
{
for (int j = 0; j < 5; j++)
{
visited[i][j] = 0;
}
}
}
void bt(int row, int col, int van, int sodongxu) {
if (van < 0) {
return;
}
if (row < 0) {
if (maxXu == -1) maxXu = 0;
if (sodongxu > maxXu) maxXu = sodongxu;
return;
}
for (int i = 0; i < 3; i++)
{
int x = row + dx[i];
int y = col + dy[i];
if (y >= 0 && y < 5 && visited[x][y] == 0) {
if (arr[x][y] == DI) {
visited[x][y] = 1;
bt(x, y, van, sodongxu);
visited[x][y] = 0;
}
if (arr[x][y] == XU) {
visited[x][y] = 1;
bt(x, y, van, sodongxu + 1);
visited[x][y] = 0;
}
if (arr[x][y] == LO) {
visited[x][y] = 1;
bt(x, y, van-1, sodongxu);
visited[x][y] = 0;
}
}
}
}
int main() {
// freopen("input.txt", "r", stdin);
int T;
cin >> T;
for (int tc = 1; tc <= T; tc++)
{
cin >> N;
for (int i = 0; i < N; i++)
{
for (int j = 0; j < 5; j++)
{
cin >> arr[i][j];
}
}
maxXu = -1;
clear_visited();
bt(N, 2, 1, 0);
if (maxXu == -1) {
cout << "#" << tc << " " << -1 << endl;
}
else cout << "#" << tc << " " << maxXu << endl;
}
return 0;
}Editor is loading...