<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://acm.khpnets.info/w39/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%3A%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D0%BE%D1%80%D0%B4%D0%B0-%D0%A4%D0%B0%D0%BB%D0%BA%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0</id>
	<title>Обсуждение:Алгоритм Форда-Фалкерсона - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://acm.khpnets.info/w39/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5%3A%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D0%BE%D1%80%D0%B4%D0%B0-%D0%A4%D0%B0%D0%BB%D0%BA%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0"/>
	<link rel="alternate" type="text/html" href="https://acm.khpnets.info/w39/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D0%BE%D1%80%D0%B4%D0%B0-%D0%A4%D0%B0%D0%BB%D0%BA%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0&amp;action=history"/>
	<updated>2026-05-13T12:16:35Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://acm.khpnets.info/w39/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D0%BE%D1%80%D0%B4%D0%B0-%D0%A4%D0%B0%D0%BB%D0%BA%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0&amp;diff=1546&amp;oldid=prev</id>
		<title>Ctrlalt: Новая страница: «== Старый код ==   #include &lt;stdio.h&gt;  #include &lt;algorithm&gt;  #include &lt;vector&gt;  using namespace std;    struct Edge {      int a, b, cap, flow;      Edge…»</title>
		<link rel="alternate" type="text/html" href="https://acm.khpnets.info/w39/index.php?title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D0%BE%D1%80%D0%B4%D0%B0-%D0%A4%D0%B0%D0%BB%D0%BA%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0&amp;diff=1546&amp;oldid=prev"/>
		<updated>2015-05-27T22:05:09Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «== Старый код ==   #include &amp;lt;stdio.h&amp;gt;  #include &amp;lt;algorithm&amp;gt;  #include &amp;lt;vector&amp;gt;  using namespace std;    struct Edge {      int a, b, cap, flow;      Edge…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Старый код ==&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;algorithm&amp;gt;&lt;br /&gt;
 #include &amp;lt;vector&amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 struct Edge {&lt;br /&gt;
     int a, b, cap, flow;&lt;br /&gt;
     Edge(int a, int b, int cap, int flow) : a(a), b(b), cap(cap), flow(flow) {}&lt;br /&gt;
 };&lt;br /&gt;
 vector&amp;lt;Edge&amp;gt; edges;&lt;br /&gt;
 &lt;br /&gt;
 int n, m, u[1010], INF = 1 &amp;lt;&amp;lt; 30;&lt;br /&gt;
 vector&amp;lt;int&amp;gt; g[1010];&lt;br /&gt;
 &lt;br /&gt;
 int findPath(int v, int bottleneckFlow) {&lt;br /&gt;
     u[v] = 1;&lt;br /&gt;
     if (v == n - 1)&lt;br /&gt;
         return bottleneckFlow;&lt;br /&gt;
     for (int i = 0; i &amp;lt; g[v].size(); i++) {&lt;br /&gt;
        Edge &amp;amp;e = edges[g[v][i]], &amp;amp;re = edges[g[v][i] ^ 1];&lt;br /&gt;
        if (!u[e.b] &amp;amp;&amp;amp; e.cap &amp;gt; e.flow) {&lt;br /&gt;
            int deltaFlow = findPath(e.b, min(bottleneckFlow, e.cap - e.flow));&lt;br /&gt;
            if (deltaFlow) {&lt;br /&gt;
                e.flow += deltaFlow;&lt;br /&gt;
                re.flow -= deltaFlow;&lt;br /&gt;
                return deltaFlow;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main() {&lt;br /&gt;
     scanf(&amp;quot;%d%d&amp;quot;, &amp;amp;n, &amp;amp;m);&lt;br /&gt;
     int a, b, cap;&lt;br /&gt;
     for (int i = 0; i &amp;lt; m; i++) {&lt;br /&gt;
         scanf(&amp;quot;%d%d%d&amp;quot;, &amp;amp;a, &amp;amp;b, &amp;amp;cap);&lt;br /&gt;
         edges.push_back(Edge(a - 1, b - 1, cap, 0));&lt;br /&gt;
         g[a - 1].push_back(edges.size() - 1);&lt;br /&gt;
         edges.push_back(Edge(b - 1, a - 1, cap, cap));&lt;br /&gt;
         g[b - 1].push_back(edges.size() - 1);&lt;br /&gt;
     }&lt;br /&gt;
     &lt;br /&gt;
     int flow = 0;&lt;br /&gt;
     while (1) {&lt;br /&gt;
         fill(u, u + n, 0);&lt;br /&gt;
         int deltaFlow = findPath(0, INF);&lt;br /&gt;
         if (!deltaFlow)&lt;br /&gt;
             break;&lt;br /&gt;
         flow += deltaFlow;&lt;br /&gt;
     }&lt;br /&gt;
     printf(&amp;quot;%d&amp;quot;, flow);&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Ctrlalt</name></author>
	</entry>
</feed>