Pagini recente » Cod sursa (job #401410) | Cod sursa (job #459149) | Cod sursa (job #1980110) | Cod sursa (job #3215385) | Cod sursa (job #2975822)
<font color="#4b77fc">#include</font> <fstream><br/><font color="#4b77fc">#include</font> <queue><br/><font color="#4b77fc">#include</font> <vector><div></div><font color="#ef40b2">using</font> <font color="#ef40b2">namespace</font> std; <br/>vector<<font color="#5ac4c4">int</font>> g[100001];<br/><font color="#5ac4c4">bool</font> viz[100001];<br/><font color="#5ac4c4">int</font> dist[100001];<div></div>ifstream in(<font color="#30a52c">"bfs.in"</font>);<br/>ofstream out(<font color="#30a52c">"bfs.out"</font>);<div></div><font color="#5ac4c4">void</font> bfs(<font color="#5ac4c4">int</font> nod) {<br/> queue<<font color="#5ac4c4">int</font>> q;<br/> q.push(nod);<br/> dist[nod] = 0;<br/> viz[nod] = true;<br/> <font color="#ef40b2">while</font>(!q.empty()) {<br/> <font color="#5ac4c4">int</font> x = q.front();<br/> q.pop();<br/> <font color="#ef40b2">for</font>(<font color="#5ac4c4">int</font> exp : g[x]) {<br/> <font color="#ef40b2">if</font>(viz[exp]) <font color="#ef40b2">continue</font>;<br/> q.push(exp);<br/> viz[exp] = 1;<br/> dist[exp] = dist[x]+1;<br/> }<br/> }<br/>}<div></div><font color="#5ac4c4">int</font> main() {<br/> <font color="#5ac4c4">int</font> n, m, nod;<br/> cin >> n >> m >> nod;<br/> <font color="#5ac4c4">int</font> a, b;<br/> <font color="#ef40b2">for</font>(<font color="#5ac4c4">int</font> i = 0; i < m; i++) {<br/> cin >> a >> b;<br/> g[a].push_back(b);<br/> }<br/> bfs(nod);<br/> <font color="#ef40b2">for</font>(<font color="#5ac4c4">int</font> i = 1; i <= n; i++) {<br/> <font color="#ef40b2">if</font>(viz[i]) cout << dist[i] << <font color="#30a52c">" "</font>;<br/> <font color="#ef40b2">else</font> cout << <font color="#30a52c">"-1 "</font>;<br/> }<br/> <font color="#ef40b2">return</font> 0;<br/>}