| Task: | Internet connection |
| Sender: | toothfairy |
| Submission time: | 2020-09-19 15:59:03 +0300 |
| Language: | C++ (C++11) |
| Status: | READY |
| Result: | WRONG ANSWER |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | details |
| #2 | ACCEPTED | 0.01 s | details |
| #3 | ACCEPTED | 0.01 s | details |
| #4 | ACCEPTED | 0.01 s | details |
| #5 | ACCEPTED | 0.01 s | details |
| #6 | WRONG ANSWER | 0.02 s | details |
| #7 | WRONG ANSWER | 0.02 s | details |
| #8 | WRONG ANSWER | 0.02 s | details |
| #9 | WRONG ANSWER | 0.02 s | details |
| #10 | WRONG ANSWER | 0.02 s | details |
| #11 | ACCEPTED | 0.01 s | details |
| #12 | ACCEPTED | 0.01 s | details |
| #13 | ACCEPTED | 0.01 s | details |
| #14 | ACCEPTED | 0.01 s | details |
| #15 | ACCEPTED | 0.01 s | details |
| #16 | ACCEPTED | 0.01 s | details |
| #17 | ACCEPTED | 0.01 s | details |
| #18 | WRONG ANSWER | 0.05 s | details |
| #19 | ACCEPTED | 0.01 s | details |
| #20 | ACCEPTED | 0.01 s | details |
| #21 | ACCEPTED | 0.01 s | details |
| #22 | ACCEPTED | 0.01 s | details |
Code
// #include <bits/stdc++.h>
#include <iostream>
#include <limits>
#include <cstring>
#include <queue>
using namespace std;
#define V 100
// int M[100][100];
unsigned long R[100][100];
bool bfs(unsigned long R[V][V], int s, int t, int parent[]) {
queue<int> q;
vector<bool> vis(V);
q.push(s);
memset(parent, 0, sizeof(int) * (t + 1));
while(!q.empty()) {
int u = q.front();
q.pop();
// aceck around
vis[u] = true;
for (int v=0; v< (t + 1); v++)
{
//std::cout << vis[v] << " " << u << " " << v << " " << R[u][v] << std::endl;
if (vis[v] == false && R[u][v] > 0)
{
q.push(v);
parent[v] = u;
//std::cout << v << " " << u << std::endl;
}
}
}
//cout << "visited " << vis[t] << endl;
return (vis[t] == true);
}
// Returns the maximum flow from s to t in the given graph
int max_flow(unsigned long R[V][V], int s, int t)
{
int u, v;
int parent[V]; // This array is filled by BFS and to store path
int max_flow = 0; // There is no flow initially
// Augment the flow while tere is path from source to sink
while (bfs(R, s, t, parent))
{
// Find minimum residual capacity of the edges along the
// path filled by BFS. Or we can say find the maximum flow
// through the path found.
unsigned long path_flow = std::numeric_limits<unsigned long>::max();
for (v=t; v!=s; v=parent[v])
{
u = parent[v];
path_flow = min(path_flow, R[u][v]);
//cout << path_flow << endl;
}
for (v=t; v != s; v=parent[v])
{
u = parent[v];
R[u][v] -= path_flow;
R[v][u] += path_flow;
}
// Add path flow to overall flow
max_flow += path_flow;
}
// Return the overall flow
return max_flow;
}
int main() {
int n, m;
cin >> n >> m;
// memset(M, 0, sizeof(int) * 100 * 100);
memset(R, 0, sizeof(unsigned long) * 100 * 100);
for (int i=0; i<m; i++) {
int a, b, w;
cin >> a >> b >> w;
// M[a-1][b-1] = w;
R[a-1][b-1] = w;
}
cout << max_flow(R, 0, n - 1);
}Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 10 20 5 6 19 4 5 47 3 5 7 4 9 62 ... |
| correct output |
|---|
| 73 |
| user output |
|---|
| 73 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 10 20 2 4 63 7 9 54 6 7 16 2 3 9 ... |
| correct output |
|---|
| 110 |
| user output |
|---|
| 110 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 10 20 5 6 90 2 3 46 7 8 80 6 7 60 ... |
| correct output |
|---|
| 29 |
| user output |
|---|
| 29 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 10 20 3 4 76 5 7 8 3 8 71 4 7 24 ... |
| correct output |
|---|
| 95 |
| user output |
|---|
| 95 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 10 20 1 8 22 6 7 40 4 5 20 8 10 77 ... |
| correct output |
|---|
| 156 |
| user output |
|---|
| 156 |
Test 6
Verdict: WRONG ANSWER
| input |
|---|
| 100 1000 63 85 864540192 22 91 974117435 64 66 953124912 85 88 6080960 ... |
| correct output |
|---|
| 4397669179 |
| user output |
|---|
| 102701883 |
Test 7
Verdict: WRONG ANSWER
| input |
|---|
| 100 1000 36 93 760720873 12 75 175717522 78 79 340128710 80 83 181753465 ... |
| correct output |
|---|
| 5298558023 |
| user output |
|---|
| 1003590727 |
Test 8
Verdict: WRONG ANSWER
| input |
|---|
| 100 1000 20 60 909693891 55 91 570199535 21 41 118646902 37 82 824735480 ... |
| correct output |
|---|
| 5466229311 |
| user output |
|---|
| 1171262015 |
Test 9
Verdict: WRONG ANSWER
| input |
|---|
| 100 1000 26 44 753330451 62 67 821574279 70 95 219303983 7 44 980013084 ... |
| correct output |
|---|
| 4893925638 |
| user output |
|---|
| 598958342 |
Test 10
Verdict: WRONG ANSWER
| input |
|---|
| 100 1000 15 89 501388091 50 71 396801720 15 92 324349822 29 85 184420157 ... |
| correct output |
|---|
| 6956499595 |
| user output |
|---|
| -1633434997 |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 2 1 1 2 1 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 2 1 2 1 1 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 2 2 1 2 1 2 1 1 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 100 1000 1 2 539540023 2 3 244306651 3 4 253259012 3 5 630461598 ... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 15
Verdict: ACCEPTED
| input |
|---|
| 4 5 1 2 2 1 3 5 2 4 3 3 2 2 ... |
| correct output |
|---|
| 4 |
| user output |
|---|
| 4 |
Test 16
Verdict: ACCEPTED
| input |
|---|
| 2 0 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 17
Verdict: ACCEPTED
| input |
|---|
| 100 0 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 18
Verdict: WRONG ANSWER
| input |
|---|
| 100 196 1 2 1000000000 2 100 1000000000 1 3 1000000000 3 100 1000000000 ... |
| correct output |
|---|
| 98000000000 |
| user output |
|---|
| -784247808 |
Test 19
Verdict: ACCEPTED
| input |
|---|
| 100 99 1 2 1000000000 2 3 1000000000 3 4 1000000000 4 5 1000000000 ... |
| correct output |
|---|
| 1000000000 |
| user output |
|---|
| 1000000000 |
Test 20
Verdict: ACCEPTED
| input |
|---|
| 2 2 2 1 1 1 2 1 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 21
Verdict: ACCEPTED
| input |
|---|
| 4 6 1 2 1000000000 1 3 1000000000 2 3 1 2 4 1000000000 ... |
| correct output |
|---|
| 2000000000 |
| user output |
|---|
| 2000000000 |
Test 22
Verdict: ACCEPTED
| input |
|---|
| 4 6 1 2 1000000000 1 3 1000000000 2 4 1000000000 2 3 1 ... |
| correct output |
|---|
| 2000000000 |
| user output |
|---|
| 2000000000 |
