```cpp
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n, m, x;
const int N = 2e6 + 2e4;
const int INF = 1e10;
struct edge
{
int ed;
int len;
int id;
};
vector <edge> e[N];
int dep[N], cur[N];
bool bfs()
{
memset(dep, -1, sizeof(dep));
memset(cur, 0, sizeof(cur));
dep[1] = 0;
queue <int> q;
q.push(1);
while(!q.empty())
{
int st = q.front();
q.pop();
for(int i = 0; i < e[st].size(); i = i + 1)
{
int ed = e[st][i].ed;
if(dep[ed] == -1 && e[st][i].len)
{
dep[ed] = dep[st] + 1;
q.push(ed);
}
}
}
return (dep[n] != -1);
}
int dfs(int st, int limit)
{
if(st == n)
return limit;
for(int i = cur[i]; i < e[st].size(); i = i + 1)
{
cur[i] = i;
int ed = e[st][i].ed;
if(e[st][i].len && dep[ed] == dep[st] + 1)
{
int t = dfs(ed, min(limit, e[st][i].len));
if(t)
{
e[st][i].len -= t;
e[ed][e[st][i].id].len += t;
return t;
}
}
}
return 0;
}
int dinic()
{
int r = 0, f = 0;
while(bfs())
{
while(f = dfs(1, INF))
r += f;
}
return r;
}
signed main()
{
cin >> n >> m >> x;
for(int i = 1; i <= m; i = i + 1)
{
int st, ed, len;
cin >> st >> ed >> len;
int sti = e[st].size();
int edi = e[ed].size();
e[st].push_back((edge){ed, len, edi});
e[ed].push_back((edge){st, 0, sti});
}
int f = dinic();
if(f == 0)
cout << "Orz Ni Jinan Saint Cow!";
else
cout << f << " " << (x + f - 1) / f;
return 0;
}
```
by AC_love @ 2023-09-27 16:13:31
UB
by Zi_Gao @ 2023-09-27 16:31:06
@[Zi_Gao](/user/554698) 按理说 UB 不应该是不开 O2 能过开了 O2 过不去吗,这个怎么反过来了?
而且可以具体说说是哪里 UB 了吗
by AC_love @ 2023-09-27 16:40:32
@[AC_love](/user/186472) O2优化的时候优化了你可能出错的地方。
by Isharmla @ 2023-09-27 16:45:09
@[Isharmla](/user/1061320) 那么应该是什么地方出错了呢
by AC_love @ 2023-09-27 16:47:23
@[AC_love](/user/186472)
```cpp
const int INF = 1e10;
```
你是认真的吗?
by Present_Coming_Time @ 2023-09-27 17:00:10
`cur[i]`改成 `cur[st]`:https://www.luogu.com.cn/record/126329617
```cpp
for(int i = cur[st]; i < e[st].size(); i = i + 1)
{
cur[st] = i;
```
by Terrible @ 2023-09-27 17:01:53
@[Present_Coming_Time](/user/793625)
```cpp
#define int long long
```
神奇不神奇?
by Terrible @ 2023-09-27 17:02:46
开 O2 会改变一堆未定义/未明确的实现问题,会导致一些奇怪情况的发生,基本不必深究。
另外“按理来说”用的很无理。
by Terrible @ 2023-09-27 17:05:14
@[Terrible](/user/195942) 好强,拜谢
by AC_love @ 2023-09-27 17:17:29