Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <stdio.h>
- #include <string.h>
- using namespace std;
- int n, m, u, v, p, ans, matrix[2020][2020], matrixB[2020][2020], vis[2020];
- int dfs1(int x) {
- ans++;
- vis[x] = 1;
- for(int i = 1; i <= n; i++) {
- if(vis[i] == 0&& matrix[x][i] == 1) dfs1(i);
- }
- }
- int dfs2(int x) {
- ans++;
- vis[x] = 1;
- for(int i = 1; i <= n; i++) {
- if(vis[i] == 0&& matrixB[x][i] == 1) dfs2(i);
- }
- }
- int main(void) {
- while(cin >> n >> m && !(n == 0 && m == 0)) {
- memset(matrix, 0, sizeof(matrix)); memset(matrixB, 0, sizeof(matrixB));
- for(int i = 0; i < m; i++) {
- scanf("%d%d%d", &u, &v, &p);
- if(p == 1) {
- matrix[u][v] = 1;
- matrixB[v][u] = 1;
- } else {
- matrix[u][v] = 1;
- matrix[v][u] = 1;
- matrixB[u][v] = 1;
- matrixB[v][u] = 1;
- }
- }
- memset(vis, 0, sizeof(vis));
- ans = 0;
- dfs1(1);
- if(ans != n) {
- printf("0\n");
- } else {
- memset(vis, 0, sizeof(vis));
- ans = 0; dfs2(1);
- if(ans != n) {
- printf("0\n");
- } else {
- printf("1\n");
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement