EK还是WA了8,9
```cpp
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
int n,m,a,b,c,d,s,t,ans,ansb,wt,w[5010],v[5010],dis[5010];
queue<int>q;
struct stu
{
int nx,to,cup,cost;
}h[100010];
struct pre
{
int x,y;
}p[5010];
int bfs()
{
for(int i=1;i<=n;i++) p[i].x=0,p[i].y=0,v[i]=0,dis[i]=99999999;
q.push(s);v[s]=1;dis[s]=0;
while(q.size())
{
int xx=q.front();q.pop();v[xx]=0;
for(int i=w[xx];i;i=h[i].nx)
{
int yy=h[i].to;
if(h[i].cup&&dis[yy]>dis[xx]+h[i].cost)
{
dis[yy]=dis[xx]+h[i].cost;p[yy].x=xx;p[yy].y=i;
if(v[yy]==0) q.push(yy),v[yy]=1;
}
}
}
cout<<dis[t]<<endl;
return dis[t];
}
void ek()
{
while(bfs()!=99999999)
{
int minn=99999999;
for(int i=t;i!=s;i=p[i].x) minn=min(minn,h[p[i].y].cup);
for(int i=t;i!=s;i=p[i].x) h[p[i].y].cup-=minn,h[p[i].y+1].cup+=minn;
ans+=minn;
ansb+=minn*dis[t];
}
}
int main()
{
cin>>n>>m>>s>>t;
for(int i=1;i<=m;i++)
{
cin>>a>>b>>c>>d;
wt++;h[wt].nx=w[a];h[wt].cup=c;h[wt].cost=d;h[wt].to=b;w[a]=wt;
wt++;h[wt].nx=w[b];h[wt].cup=0;h[wt].cost=-d;h[wt].to=a;w[b]=wt;
}
ek();
cout<<ans<<" "<<ansb;
return 0;
}```
by jiangdi123 @ 2020-01-26 19:23:48