Untitled
unknown
plain_text
a year ago
1.3 kB
5
Indexable
#include <iostream> #pragma warning (disable:4996) using namespace std; int N, answer, map[15][6]; int dx[3] = {-1, -1, -1}; int dy[3] = {-1, 0, 1}; int visit[15][6]; int nvan; void backTrack(int hang, int cot, int tien, int buoc){ if(buoc == N){ if(tien > answer) answer = tien; return; } for(int i = 0; i < 3; i++){ int h = hang + dx[i]; int c = cot + dy[i]; if(h >= 0 && h < N && c >= 0 && c < 5 && visit[h][c] == 0){ if(map[h][c] == 0){ visit[h][c] = 1; backTrack(h, c, tien, buoc+1); visit[h][c] = 0; } if(map[h][c] == 1){ visit[h][c] = 1; backTrack(h, c, tien + 1, buoc + 1); visit[h][c] = 0; } if(map[h][c] == 2){ if(nvan == 1){ for(int k = 0; k <= 1; k++){ if(k == 0){ nvan = 0; visit[h][c] = 1; backTrack(h, c, tien, buoc+1); visit[h][c] = 0; nvan = 1; } } } } } } } int main(){ freopen("Text.txt", "r", stdin); int T; cin >> T; for(int tc = 1; tc <= T; tc++){ cin >> N; for(int i = 0; i < 15; i++){ for(int j = 0; j < 5; j++){ map[i][j] = 0; visit[i][j] = 0; } } for(int i = 0; i < N; i++){ for(int j = 0; j < 5; j++){ cin >> map[i][j]; } } nvan = 1; answer = -1; visit[N][2] = 1; backTrack(N, 2, 0, 0); cout << "#" << tc << " " << answer << endl; } return 0; }
Editor is loading...
Leave a Comment