<p>&nbsp;</p> <h1><a id="_0"></a>拓扑排序</h1> <p>拓扑排序是对一张 <strong>有向</strong> 并且 <strong>无环</strong> 的图进行<strong>遍历排序</strong>。<br> 如果在图中所有的节点构成的序列<span class="katex--inline"><span class="katex"><span class="katex-mathml">AA</span><span class="katex-html"><span class="base"><span class="mord mathdefault">A</span></span></span></span></span>中,对于每一条边<span class="katex--inline"><span class="katex"><span class="katex-mathml">(x,y)(x, y)</span><span class="katex-html"><span class="base"><span class="mopen">(</span><span class="mord mathdefault">x</span><span class="mpunct">,</span><span class="mord mathdefault" style="margin-right: 0.03588em">y</span><span class="mclose">)</span></span></span></span></span>:<span class="katex--inline"><span class="katex"><span class="katex-mathml">xx</span><span class="katex-html"><span class="base"><span class="mord mathdefault">x</span></span></span></span></span>都出现在<span class="katex--inline"><span class="katex"><span class="katex-mathml">yy</span><span class="katex-html"><span class="base"><span class="mord mathdefault" style="margin-right: 0.03588em">y</span></span></span></span></span>的前面,则序列<span class="katex--inline"><span class="katex"><span class="katex-mathml">AA</span><span class="katex-html"><span class="base"><span class="mord mathdefault">A</span></span></span></span></span>就为这张图的拓扑序。</p> <h4><a id="_4"></a>关于入度和出度</h4> <p>入度 :以节点<span class="katex--inline"><span class="katex"><span class="katex-mathml">xx</span><span class="katex-html"><span class="base"><span class="mord mathdefault">x</span></span></span></span></span>为终点的有向边的条数被称为<span class="katex--inline"><span class="katex"><span class="katex-mathml">xx</span><span class="katex-html"><span class="base"><span class="mord mathdefault">x</span></span></span></span></span>的入度。记作 <span class="katex--inline"><span class="katex"><span class="katex-mathml">deg(x)deg(x)</span><span class="katex-html"><span class="base"><span class="mord mathdefault">d</span><span class="mord mathdefault">e</span><span class="mord mathdefault" style="margin-right: 0.03588em">g</span><span class="mopen">(</span><span class="mord mathdefault">x</span><span class="mclose">)</span></span></span></span></span> .<br> 出度 :以节点<span class="katex--inline"><span class="katex"><span class="katex-mathml">xx</span><span class="katex-html"><span class="base"><span class="mord mathdefault">x</span></span></span></span></span>为起点的有向边的条数被称为<span class="katex--inline"><span class="katex"><span class="katex-mathml">xx</span><span class="katex-html"><span class="base"><span class="mord mathdefault">x</span></span></span></span></span>的出度。<br> <img src="https://uploadfiles.nowcoder.com/images/20201011/271749033_1602394156105_5A9F6A51E994577B680762E995D412F0"><br> 例如在此图中,节点3的入度就为2 ,节点4的入度也为2.</p> <h3><a id="_10"></a>思想</h3> <p>不断选择图中入度为0的节点入队(如上图中的节点5、2、 1)。<br> 再将<span class="katex--inline"><span class="katex"><span class="katex-mathml">xx</span><span class="katex-html"><span class="base"><span class="mord mathdefault">x</span></span></span></span></span>连向的节点的入度减一。</p> <h3><a id="_14"></a>实现</h3> <p>1.建一个空的拓扑序列<span class="katex--inline"><span class="katex"><span class="katex-mathml">AA</span><span class="katex-html"><span class="base"><span class="mord mathdefault">A</span></span></span></span></span>。<br> 2.预处理入度,将入度是0的节点全部入队。<br> 3.取出队头,此时的对头<span class="katex--inline"><span class="katex"><span class="katex-mathml">xx</span><span class="katex-html"><span class="base"><span class="mord mathdefault">x</span></span></span></span></span>一定是入度为0的节点,所以<span class="katex--inline"><span class="katex"><span class="katex-mathml">A[++cnt]=x;A[++ cnt] = x;</span><span class="katex-html"><span class="base"><span class="mord mathdefault">A</span><span class="mopen">[</span><span class="mord">+</span><span class="mbin">+</span></span><span class="base"><span class="mord mathdefault">c</span><span class="mord mathdefault">n</span><span class="mord mathdefault">t</span><span class="mclose">]</span><span class="mrel">=</span></span><span class="base"><span class="mord mathdefault">x</span><span class="mpunct">;</span></span></span></span></span><br> 4.对于此时的队头<span class="katex--inline"><span class="katex"><span class="katex-mathml">xx</span><span class="katex-html"><span class="base"><span class="mord mathdefault">x</span></span></span></span></span>,把所连的<span class="katex--inline"><span class="katex"><span class="katex-mathml">yy</span><span class="katex-html"><span class="base"><span class="mord mathdefault" style="margin-right: 0.03588em">y</span></span></span></span></span>的入度减一,即<span class="katex--inline"><span class="katex"><span class="katex-mathml">deg[y]−−;deg[y] --;</span><span class="katex-html"><span class="base"><span class="mord mathdefault">d</span><span class="mord mathdefault">e</span><span class="mord mathdefault" style="margin-right: 0.03588em">g</span><span class="mopen">[</span><span class="mord mathdefault" style="margin-right: 0.03588em">y</span><span class="mclose">]</span><span class="mbin">−</span></span><span class="base"><span class="mord">−</span><span class="mpunct">;</span></span></span></span></span><br> 5.操作至队列为空,此时<span class="katex--inline"><span class="katex"><span class="katex-mathml">A[]A[]</span><span class="katex-html"><span class="base"><span class="mord mathdefault">A</span><span class="mopen">[</span><span class="mclose">]</span></span></span></span></span>则为这张图的拓扑排序。<br> 6.在最后将<span class="katex--inline"><span class="katex"><span class="katex-mathml">A[]A[]</span><span class="katex-html"><span class="base"><span class="mord mathdefault">A</span><span class="mopen">[</span><span class="mclose">]</span></span></span></span></span>的长度检查以下,即看此时的<span class="katex--inline"><span class="katex"><span class="katex-mathml">cntcnt</span><span class="katex-html"><span class="base"><span class="mord mathdefault">c</span><span class="mord mathdefault">n</span><span class="mord mathdefault">t</span></span></span></span></span>是否为图中的节点个数,如果少于了节点数,则说明图中有环。</p> <h4><a id="_22"></a>图示</h4> <p>初始图<br> <img src="https://uploadfiles.nowcoder.com/images/20201011/271749033_1602394156195_5A9F6A51E994577B680762E995D412F0"><br> 1.建立空序列<br> 2.2.预处理入度,将入度是0的节点全部入队。<br> <img src="https://uploadfiles.nowcoder.com/images/20201011/271749033_1602394156514_5A9F6A51E994577B680762E995D412F0"><br> 3.取出队头,此时的对头<span class="katex--inline"><span class="katex"><span class="katex-mathml">xx</span><span class="katex-html"><span class="base"><span class="mord mathdefault">x</span></span></span></span></span>一定是入度为0的节点,所以<span class="katex--inline"><span class="katex"><span class="katex-mathml">A[++cnt]=x;A[++ cnt] = x;</span><span class="katex-html"><span class="base"><span class="mord mathdefault">A</span><span class="mopen">[</span><span class="mord">+</span><span class="mbin">+</span></span><span class="base"><span class="mord mathdefault">c</span><span class="mord mathdefault">n</span><span class="mord mathdefault">t</span><span class="mclose">]</span><span class="mrel">=</span></span><span class="base"><span class="mord mathdefault">x</span><span class="mpunct">;</span></span></span></span></span><br> 4.对于此时的队头<span class="katex--inline"><span class="katex"><span class="katex-mathml">xx</span><span class="katex-html"><span class="base"><span class="mord mathdefault">x</span></span></span></span></span>,把所连的<span class="katex--inline"><span class="katex"><span class="katex-mathml">yy</span><span class="katex-html"><span class="base"><span class="mord mathdefault" style="margin-right: 0.03588em">y</span></span></span></span></span>的入度减一,即<span class="katex--inline"><span class="katex"><span class="katex-mathml">deg[y]−−;deg[y] --;</span><span class="katex-html"><span class="base"><span class="mord mathdefault">d</span><span class="mord mathdefault">e</span><span class="mord mathdefault" style="margin-right: 0.03588em">g</span><span class="mopen">[</span><span class="mord mathdefault" style="margin-right: 0.03588em">y</span><span class="mclose">]</span><span class="mbin">−</span></span><span class="base"><span class="mord">−</span><span class="mpunct">;</span></span></span></span></span><br> 5.操作至队列为空,此时<span class="katex--inline"><span class="katex"><span class="katex-mathml">A[]A[]</span><span class="katex-html"><span class="base"><span class="mord mathdefault">A</span><span class="mopen">[</span><span class="mclose">]</span></span></span></span></span>则为这张图的拓扑排序。</p> <p><img src="https://uploadfiles.nowcoder.com/images/20201011/271749033_1602394156862_5A9F6A51E994577B680762E995D412F0"><br> 6.在最后将<span class="katex--inline"><span class="katex"><span class="katex-mathml">A[]A[]</span><span class="katex-html"><span class="base"><span class="mord mathdefault">A</span><span class="mopen">[</span><span class="mclose">]</span></span></span></span></span>的长度检查以下,即看此时的<span class="katex--inline"><span class="katex"><span class="katex-mathml">cntcnt</span><span class="katex-html"><span class="base"><span class="mord mathdefault">c</span><span class="mord mathdefault">n</span><span class="mord mathdefault">t</span></span></span></span></span>是否为图中的节点个数,此时发现少了三个节点,所以图中含有环,即<span class="katex--inline"><span class="katex"><span class="katex-mathml">(2,4)(4,6)(6,2)(2, 4) (4, 6)(6, 2)</span><span class="katex-html"><span class="base"><span class="mopen">(</span><span class="mord">2</span><span class="mpunct">,</span><span class="mord">4</span><span class="mclose">)</span><span class="mopen">(</span><span class="mord">4</span><span class="mpunct">,</span><span class="mord">6</span><span class="mclose">)</span><span class="mopen">(</span><span class="mord">6</span><span class="mpunct">,</span><span class="mord">2</span><span class="mclose">)</span></span></span></span></span>。</p> <h3><a id="_35"></a>代码</h3> <p>本人太菜了,邻接表出了点玄学错误,就只能用矩阵。。。</p> <pre><code class="prism language-cpp"><span class="token macro property">#<span class="token directive keyword">include</span> <span class="token string">&lt;queue&gt;</span></span> <span class="token macro property">#<span class="token directive keyword">include</span> <span class="token string">&lt;cstdio&gt;</span></span> <span class="token macro property">#<span class="token directive keyword">include</span> <span class="token string">&lt;iostream&gt;</span></span> <span class="token macro property">#<span class="token directive keyword">include</span> <span class="token string">&lt;algorithm&gt;</span></span> <span class="token keyword">using</span> <span class="token keyword">namespace</span> std<span class="token punctuation">;</span> <span class="token keyword">const</span> <span class="token keyword">int</span> MAXN <span class="token operator">=</span> <span class="token number">10005</span><span class="token punctuation">;</span> <span class="token keyword">int</span> n<span class="token punctuation">,</span> m<span class="token punctuation">,</span> cnt<span class="token punctuation">;</span> <span class="token keyword">bool</span> a<span class="token punctuation">[</span>MAXN<span class="token punctuation">]</span><span class="token punctuation">[</span>MAXN<span class="token punctuation">]</span><span class="token punctuation">;</span> <span class="token keyword">int</span> deg<span class="token punctuation">[</span>MAXN<span class="token punctuation">]</span><span class="token punctuation">,</span> ans<span class="token punctuation">[</span>MAXN<span class="token punctuation">]</span><span class="token punctuation">;</span> queue<span class="token operator">&lt;</span><span class="token keyword">int</span><span class="token operator">&gt;</span> q<span class="token punctuation">;</span> <span class="token keyword">void</span> <span class="token function">topsort</span><span class="token punctuation">(</span><span class="token keyword">void</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> i <span class="token operator">&lt;=</span> n<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>deg<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span> q<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">while</span> <span class="token punctuation">(</span><span class="token operator">!</span>q<span class="token punctuation">.</span><span class="token function">empty</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">const</span> <span class="token keyword">int</span> u <span class="token operator">=</span> q<span class="token punctuation">.</span><span class="token function">front</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> ans<span class="token punctuation">[</span><span class="token operator">++</span>cnt<span class="token punctuation">]</span> <span class="token operator">=</span> u<span class="token punctuation">;</span> q<span class="token punctuation">.</span><span class="token function">pop</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> i <span class="token operator">&lt;=</span> n<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>a<span class="token punctuation">[</span>u<span class="token punctuation">]</span><span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> deg<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token operator">--</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>deg<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">==</span> <span class="token number">0</span><span class="token punctuation">)</span> q<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">int</span> <span class="token function">main</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">scanf</span><span class="token punctuation">(</span><span class="token string">"%d %d"</span><span class="token punctuation">,</span> <span class="token operator">&amp;</span>n<span class="token punctuation">,</span> <span class="token operator">&amp;</span>m<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> i <span class="token operator">&lt;=</span> m<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">int</span> x<span class="token punctuation">,</span> y<span class="token punctuation">;</span> <span class="token function">scanf</span><span class="token punctuation">(</span><span class="token string">"%d %d"</span><span class="token punctuation">,</span> <span class="token operator">&amp;</span>x<span class="token punctuation">,</span> <span class="token operator">&amp;</span>y<span class="token punctuation">)</span><span class="token punctuation">;</span> a<span class="token punctuation">[</span>x<span class="token punctuation">]</span><span class="token punctuation">[</span>y<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> deg<span class="token punctuation">[</span>y<span class="token punctuation">]</span><span class="token operator">++</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token function">topsort</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>cnt <span class="token operator">&lt;</span> n<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"no solution\n"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span> <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">1</span><span class="token punctuation">;</span> i <span class="token operator">&lt;=</span> cnt<span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">printf</span><span class="token punctuation">(</span><span class="token string">"%d "</span><span class="token punctuation">,</span> ans<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">return</span> <span class="token number">0</span><span class="token punctuation">;</span> <span class="token punctuation">}<br>//邻接表的锅突然修好<br></span></code></pre> <pre><code><span class="pl-cp">#include <span class="pl-cpf">&lt;vector&gt;<span class="pl-cp"> <span class="pl-cp">#include <span class="pl-cpf">&lt;queue&gt;<span class="pl-cp"> <span class="pl-cp">#include <span class="pl-cpf">&lt;cstdio&gt;<span class="pl-cp"> <span class="pl-cp">#include <span class="pl-cpf">&lt;iostream&gt;<span class="pl-cp"> <span class="pl-cp">#include <span class="pl-cpf">&lt;algorithm&gt;<span class="pl-cp"> <span class="pl-k">using <span class="pl-k">namespace <span class="pl-n">std<span class="pl-p">; <span class="pl-k">const <span class="pl-kt">int <span class="pl-n">MAXN <span class="pl-o">= <span class="pl-mi">20005<span class="pl-p">; <span class="pl-kt">int <span class="pl-n">n<span class="pl-p">, <span class="pl-n">m<span class="pl-p">, <span class="pl-n">deg<span class="pl-p">[<span class="pl-n">MAXN<span class="pl-p">], <span class="pl-n">ans<span class="pl-p">[<span class="pl-n">MAXN<span class="pl-p">], <span class="pl-n">cnt<span class="pl-p">; <span class="pl-kt">bool <span class="pl-n">a<span class="pl-p">[<span class="pl-n">MAXN<span class="pl-p">][<span class="pl-n">MAXN<span class="pl-p">]; <span class="pl-n">queue<span class="pl-o">&lt;<span class="pl-kt">int<span class="pl-o">&gt; <span class="pl-n">q<span class="pl-p">; <span class="pl-n">vector<span class="pl-o">&lt;<span class="pl-kt">int<span class="pl-o">&gt; <span class="pl-n">G<span class="pl-p">[<span class="pl-n">MAXN<span class="pl-p">]; <span class="pl-kt">void <span class="pl-nf">topsort<span class="pl-p">() <span class="pl-p">{ <span class="pl-k">for <span class="pl-p">(<span class="pl-kt">int <span class="pl-n">i <span class="pl-o">= <span class="pl-mi">1<span class="pl-p">; <span class="pl-n">i <span class="pl-o">&lt;= <span class="pl-n">n<span class="pl-p">; <span class="pl-n">i<span class="pl-o">++<span class="pl-p">) <span class="pl-p">{ <span class="pl-k">if <span class="pl-p">(<span class="pl-n">deg<span class="pl-p">[<span class="pl-n">i<span class="pl-p">] <span class="pl-o">== <span class="pl-mi">0<span class="pl-p">) <span class="pl-n">q<span class="pl-p">.<span class="pl-n">push<span class="pl-p">(<span class="pl-n">i<span class="pl-p">); <span class="pl-p">} <span class="pl-k">while <span class="pl-p">(<span class="pl-n">q<span class="pl-p">.<span class="pl-n">size<span class="pl-p">()) <span class="pl-p">{ <span class="pl-kt">int <span class="pl-n">u <span class="pl-o">= <span class="pl-n">q<span class="pl-p">.<span class="pl-n">front<span class="pl-p">(); <span class="pl-n">ans<span class="pl-p">[<span class="pl-o">++<span class="pl-n">cnt<span class="pl-p">] <span class="pl-o">= <span class="pl-n">u<span class="pl-p">; <span class="pl-n">q<span class="pl-p">.<span class="pl-n">pop<span class="pl-p">(); <span class="pl-k">for <span class="pl-p">(<span class="pl-kt">int <span class="pl-n">i <span class="pl-o">= <span class="pl-mi">0<span class="pl-p">; <span class="pl-n">i <span class="pl-o">&lt; <span class="pl-n">G<span class="pl-p">[<span class="pl-n">u<span class="pl-p">].<span class="pl-n">size<span class="pl-p">(); <span class="pl-n">i<span class="pl-o">++<span class="pl-p">) <span class="pl-p">{ <span class="pl-n">deg<span class="pl-p">[<span class="pl-n">G<span class="pl-p">[<span class="pl-n">u<span class="pl-p">][<span class="pl-n">i<span class="pl-p">]]<span class="pl-o">--<span class="pl-p">; <span class="pl-k">if <span class="pl-p">(<span class="pl-n">deg<span class="pl-p">[<span class="pl-n">G<span class="pl-p">[<span class="pl-n">u<span class="pl-p">][<span class="pl-n">i<span class="pl-p">]] <span class="pl-o">== <span class="pl-mi">0<span class="pl-p">) <span class="pl-p">{ <span class="pl-n">q<span class="pl-p">.<span class="pl-n">push<span class="pl-p">(<span class="pl-n">G<span class="pl-p">[<span class="pl-n">u<span class="pl-p">][<span class="pl-n">i<span class="pl-p">]); <span class="pl-p">} <span class="pl-p">} <span class="pl-p">} <span class="pl-p">} <span class="pl-kt">int <span class="pl-nf">main<span class="pl-p">() <span class="pl-p">{ <span class="pl-n">scanf<span class="pl-p">(<span class="pl-s">"%d %d"<span class="pl-p">, <span class="pl-o">&amp;<span class="pl-n">n<span class="pl-p">, <span class="pl-o">&amp;<span class="pl-n">m<span class="pl-p">); <span class="pl-k">for <span class="pl-p">(<span class="pl-kt">int <span class="pl-n">i <span class="pl-o">= <span class="pl-mi">1<span class="pl-p">; <span class="pl-n">i <span class="pl-o">&lt;= <span class="pl-n">m<span class="pl-p">; <span class="pl-n">i<span class="pl-o">++<span class="pl-p">) <span class="pl-p">{ <span class="pl-kt">int <span class="pl-n">x<span class="pl-p">, <span class="pl-n">y<span class="pl-p">; <span class="pl-n">scanf<span class="pl-p">(<span class="pl-s">"%d %d"<span class="pl-p">, <span class="pl-o">&amp;<span class="pl-n">x<span class="pl-p">, <span class="pl-o">&amp;<span class="pl-n">y<span class="pl-p">); <span class="pl-n">G<span class="pl-p">[<span class="pl-n">x<span class="pl-p">].<span class="pl-n">push_back<span class="pl-p">(<span class="pl-n">y<span class="pl-p">); <span class="pl-n">deg<span class="pl-p">[<span class="pl-n">y<span class="pl-p">]<span class="pl-o">++<span class="pl-p">; <span class="pl-p">} <span class="pl-n">topsort<span class="pl-p">(); <span class="pl-k">if <span class="pl-p">(<span class="pl-n">cnt <span class="pl-o">&lt; <span class="pl-n">n<span class="pl-p">) <span class="pl-p">{ <span class="pl-n">printf<span class="pl-p">(<span class="pl-s">"no solution<span class="pl-se">\n<span class="pl-s">"<span class="pl-p">); <span class="pl-p">} <span class="pl-k">else <span class="pl-p">{ <span class="pl-k">for <span class="pl-p">(<span class="pl-kt">int <span class="pl-n">i <span class="pl-o">= <span class="pl-mi">1<span class="pl-p">; <span class="pl-n">i <span class="pl-o">&lt;= <span class="pl-n">cnt<span class="pl-p">; <span class="pl-n">i<span class="pl-o">++<span class="pl-p">) <span class="pl-p">{ <span class="pl-n">printf<span class="pl-p">(<span class="pl-s">"%d "<span class="pl-p">, <span class="pl-n">ans<span class="pl-p">[<span class="pl-n">i<span class="pl-p">]); <span class="pl-p">} <span class="pl-p">} <span class="pl-k">return <span class="pl-mi">0<span class="pl-p">; <span class="pl-p">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre> <pre><code class="prism language-cpp"><span class="token punctuation"><br></span> </code></pre>