Algorithm
[SWEA 1219] 길찾기
승우승
2019. 7. 24. 17:39
반응형
문제 설명이 좀 어렵게 되있는데
dfs로 정점의 마지막까지 탐색한 뒤 길이 존재하면 1, 존재하지 않으면 0을 출력해주면 된다.
소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include <cstdio> #include <cstring> #define MAX 100 using namespace std; int n, m; bool isExisitRoad; bool visit[MAX]; bool map[MAX][MAX]; void dfs(int s) { visit[s]=1; if(s==99) { isExisitRoad=1; return; } for (int x=0; x<MAX; x++) { if (map[s][x] && !visit[x]) dfs(x); } } void solve() { for (int t=0; t<10; t++) { memset(map, 0, sizeof(map)); memset(visit, 0, sizeof(visit)); isExisitRoad=0; scanf("%d %d", &n, &m); int y, x; for (int i=0; i<m; i++) { scanf("%d %d", &y, &x); map[y][x]=1; } dfs(0); if (isExisitRoad) printf("#%d\n", n); else printf("#%d\n", n); } } int main() { solve(); return 0; } | cs |
반응형