알고리즘/SWEA

[SWEA 1210] Ladder1

히더 2018. 8. 6. 17:26

출처 : https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14ABYKADACFAYh


#include <iostream>

#include <algorithm>

#include <memory.h>

using namespace std;


int result;

int arr[100][102], a, b;

bool visited[100][102];


void cal(int ii, int jj)

{

if (ii == 0)

{

result = jj - 1;

return;

}

visited[ii][jj] = true;

if (arr[ii][jj + 1] && !visited[ii][jj+1]) cal(ii, jj + 1);

else if (arr[ii][jj - 1] && !visited[ii][jj - 1]) cal(ii, jj - 1);

else if (arr[ii-1][jj] && !visited[ii-1][jj]) cal(ii-1, jj);

}


int main()

{

int T; int t;

T = 10;

while (T--)

{

cin >> t; result = 0; memset(arr, 0, sizeof(arr)); memset(visited, false, sizeof(visited));

for (int i = 0; i < 100; i++)for (int j = 1; j <= 100; j++)

{

cin >> arr[i][j];

if (arr[i][j] == 2) cal(i, j);

}

cout << "#" << t << " " << result << endl;

}


return 0;

}