Untitled

mail@pastecode.io avatarunknown
plain_text
2 months ago
1.4 kB
8
Indexable
Never
#include <iostream>
using namespace std;


int main() {
	freopen("input.txt", "r", stdin);
	int T;
	cin >> T;
	for (int test_case = 1; test_case <= T; test_case++) {
		int size;
		cin >> size;
		int arr[101][101];
		for (int i = 0; i < size; i++){
			for (int j = 0; j < size; j++){
				cin >> arr[i][j];
			}
		}

		int tx[4] = {0, 1, 0, -1};
		int ty[4] = {1, 0, -1, 0};
		int count = 0;
		int x = 0;
		int y = 0;
		int mode = 0;
		while(x >= 0 && y >= 0 && x <size && y<size){
			if(arr[x][y] == 2 && mode == 0){
				count++;
				mode = 1;
			}
			else if(arr[x][y] == 2 && mode == 1){
				count++;
				mode = 0;
			}
			else if(arr[x][y] == 2 && mode == 2){
				count++;
				mode = 3;
			}
			else if(arr[x][y] == 2 && mode == 3){
				count++;
				mode = 2;
			}
			else if(arr[x][y] == 1 && mode == 0){
				count++;
				mode = 3;
			}
			else if(arr[x][y] == 1 && mode == 1){
				count++;
				mode = 2;
			}
			else if(arr[x][y] == 1 && mode == 2){
				count++;
				mode = 1;
			}
			else if(arr[x][y] == 1 && mode == 3){
				count++;
				mode = 0;
			}
			arr[x][y] = 3;
			x = x + tx[mode];
			y = y + ty[mode];

		}
		/*
		for (int i = 0; i < size; i++){
			for (int j = 0; j < size; j++){
				cout << arr[i][j] << " ";
			}
			cout << endl;
		}
		*/
		cout << "#" << test_case << " " << count << endl;
	}

	return 0;
}