#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int head[N],to[N],vv[N],w[N],c[N];
int n,m,q,cnt,num;
struct Cz
{
int dis,pos,val;
}s[N];
int ljb(){
int u,v;
scanf("%d%d",&u,&v);
to[++num]=head[u],head[u]=num,vv[num]=v;
to[++num]=head[v],head[v]=num,vv[num]=u;
}
int read(int i){
scanf("%d%d%d",&s[i].pos,&s[i].dis,&s[i].val);
}
void dfs(int x,int ran,int cl){
if (w[x]>ran||ran<0) return;
w[x]=ran;
if (!c[x]) c[x]=cl;
for (int h=head[x],o=vv[h];h;o=vv[h=to[h]]) dfs(o,ran-1,cl);
}
//int
int main(){
// freopen("ceshi.txt","r",stdin);
scanf("%d%d",&n,&m);
for (int i=0;i<m;i++) ljb();
scanf("%d",&q);cnt=q;
while (cnt--)
read(cnt);
// for (int i=0;i<q;i++)
// printf("%d %d %d\n",s[i].dis,s[i].pos,s[i].val);
for (int i=0;i<q;i++){dfs(s[i].pos,s[i].dis,s[i].val);};
for (int i=1;i<=n;i++) printf("%d\n",c[i]);
}
./Main.cpp: In function ‘int ljb()’:
./Main.cpp:12:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&u,&v);
^
./Main.cpp: In function ‘int read(int)’:
./Main.cpp:17:47: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d",&s[i].pos,&s[i].dis,&s[i].val);
^
./Main.cpp: In function ‘int main()’:
./Main.cpp:28:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&n,&m);
^
./Main.cpp:30:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&q);cnt=q;
^