Skip to content

Instantly share code, notes, and snippets.

@joaogui1
Created June 25, 2017 20:56
Show Gist options
  • Save joaogui1/6664ab1f2f4121f96be7e8767bdc7640 to your computer and use it in GitHub Desktop.
Save joaogui1/6664ab1f2f4121f96be7e8767bdc7640 to your computer and use it in GitHub Desktop.
#include<bits/stdc++.h>
using namespace std;
vector <int> adj[128];
int colour[128], mark[128], t;
bool dfs(int u, int v, int c){
bool paint = 0;
mark[u] = t;
if(u == v){
colour[v] = c;
return 1;
}
for(int i = 0; i < adj[u].size(); ++i)
if(mark[adj[u][i]] != t) paint |= dfs(adj[u][i], v, c);
if(paint) colour[u] = c;
return paint;
}
int main(){
int n, m, u, v, c;
cin >> n >> m;
for(int i = 1; i < n; ++i){
cin >> u >> v;
adj[u].push_back(v), adj[v].push_back(u);
}
for(int i = 0; i < m; ++i){
cin >> u >> v >> c;
++t;
dfs(u, v, c);
}
for(int i = 1; i <= n; ++i) cout << colour[i] << " ";
cout << "\n";
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment