| Task: | Download Speed |
| Sender: | badr_masaaf |
| Submission time: | 2025-10-16 17:21:34 +0300 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.00 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.00 s | details |
| #9 | ACCEPTED | 0.00 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | ACCEPTED | 0.00 s | details |
| #12 | ACCEPTED | 0.00 s | details |
Compiler report
input/code.cpp: In member function 'long long int Dinic::dfs(int, long long int)':
input/code.cpp:22:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<E>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
22 | for(int &i=it[u];i<g[u].size();i++){
| ~^~~~~~~~~~~~Code
#include <bits/stdc++.h>
using namespace std;
struct E{int to,rev;long long cap;};
struct Dinic{
int n,s,t;vector<vector<E>> g;vector<int> l,it;
Dinic(int n):n(n),g(n),l(n),it(n){}
void add(int u,int v,long long c){
g[u].push_back({v,(int)g[v].size(),c});
g[v].push_back({u,(int)g[u].size()-1,0});
}
bool bfs(){
fill(l.begin(),l.end(),-1);
queue<int>q;q.push(s);l[s]=0;
while(!q.empty()){
int u=q.front();q.pop();
for(auto &e:g[u])if(e.cap>0&&l[e.to]<0)l[e.to]=l[u]+1,q.push(e.to);
}
return l[t]>=0;
}
long long dfs(int u,long long f){
if(u==t)return f;
for(int &i=it[u];i<g[u].size();i++){
E &e=g[u][i];
if(e.cap>0&&l[e.to]==l[u]+1){
long long ret=dfs(e.to,min(f,e.cap));
if(ret){e.cap-=ret;g[e.to][e.rev].cap+=ret;return ret;}
}
}
return 0;
}
long long flow(int S,int T){
s=S;t=T;long long F=0,f;
while(bfs()){fill(it.begin(),it.end(),0);while((f=dfs(s,1e18))>0)F+=f;}
return F;
}
};
int main(){
ios::sync_with_stdio(0);cin.tie(0);
int n,m;cin>>n>>m;Dinic d(n);
while(m--){int a,b;long long c;cin>>a>>b>>c;d.add(a-1,b-1,c);}
cout<<d.flow(0,n-1);
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 4 3 1 2 5 2 3 3 3 4 6 |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 4 5 1 2 1 1 3 1 2 3 1 2 4 1 ... |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 4 5 1 2 1000000000 1 3 1000000000 2 3 1 2 4 1000000000 ... |
| correct output |
|---|
| 2000000000 |
| user output |
|---|
| 2000000000 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 2 1 2 1 100 |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 2 1000 1 2 1000000000 1 2 1000000000 1 2 1000000000 1 2 1000000000 ... |
| correct output |
|---|
| 1000000000000 |
| user output |
|---|
| 1000000000000 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 500 998 1 2 54 1 3 59 1 4 83 2 5 79 ... |
| correct output |
|---|
| 60 |
| user output |
|---|
| 60 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 500 998 1 2 530873053 1 3 156306296 1 4 478040476 3 5 303609600 ... |
| correct output |
|---|
| 1093765123 |
| user output |
|---|
| 1093765123 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 2 1 1 2 1 |
| correct output |
|---|
| 1 |
| user output |
|---|
| 1 |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 4 5 1 2 3 2 4 2 1 3 4 3 4 5 ... |
| correct output |
|---|
| 6 |
| user output |
|---|
| 6 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 4 5 1 2 1 1 3 2 3 2 1 2 4 2 ... |
| correct output |
|---|
| 3 |
| user output |
|---|
| 3 |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 10 999 1 2 1000000000 1 2 1000000000 1 2 1000000000 1 2 1000000000 ... |
| correct output |
|---|
| 111000000000 |
| user output |
|---|
| 111000000000 |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 7 9 1 2 1 1 3 1 1 4 1 2 5 1 ... |
| correct output |
|---|
| 2 |
| user output |
|---|
| 2 |
