#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pll pair<ll,ll>
#define fs first
#define sc second
#define _all(a) a.begin(),a.end()
#define pii pair<int,int>
const int mxn = 3030;
struct Edge{
int to;
int cap;
Edge(){}
Edge(int tt,int cc){
to = tt,cap = cc;
}
};
vector<Edge> edges;
vector<vector<int>> paths;
vector<int> level;
string s[mxn];
int st,ed;
void addedge(int a,int b){
paths[a].push_back(edges.size());
edges.push_back(Edge(b,1));
paths[b].push_back(edges.size());
edges.push_back(Edge(a,0));
}
bool bfs(){
queue<int> q;
fill(level.begin(),level.end(),-1);
level[0] = 0;
q.push(0);
while(!q.empty()){
auto now = q.front();
q.pop();
for(auto &id:paths[now]){
if(!edges[id].cap)continue;
auto nxt = edges[id].to;
if(level[nxt] == -1){
level[nxt] = level[now]+1;
q.push(nxt);
}
}
}
return level[ed] != -1;
}
int dfs(int now,int lim){
if(now == ed)return lim;
int ans = 0;
for(auto &id:paths[now]){
if(!edges[id].cap)continue;
if(!lim)break;
auto nxt = edges[id].to;
if(level[nxt] != level[now]+1)continue;
auto re = dfs(nxt,min(edges[id].cap,lim));
if(re == 0)continue;
edges[id].cap -= re;
edges[id^1].cap += re;
ans += re;
lim -= re;
}
return ans;
}
int arr[mxn*mxn];
void solve(){
return;
}
int main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
solve();
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
340 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
340 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
340 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |