Cod sursa(job #2841238)

Utilizator Tudor06MusatTudor Tudor06 Data 29 ianuarie 2022 13:54:28
Problema Cuplaj maxim in graf bipartit Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.49 kb
#import<bits/stdc++.h>
std::vector <int> e[200001];int v[200001],p[200001],n,m,d,i,a,b,c,s;int r(int n){v[n]=1;for(int i:e[n]){int x=p[i];if(!x){p[n]=i;p[i]=n;return 1;}if(!v[x]&&r(x)){p[n]=i;p[i]=n;return 1;}}return 0;}main(){std::ifstream f("cuplaj.in");std::ofstream g("cuplaj.out");f>>n>>m>>d;while(d--){f>>a>>b;e[a].push_back(b+n);e[b+n].push_back(a);}while(!s) {s=1;memset(v,0,4*(n+m));for(i=1;i<=n;i++)if(!v[i]&&!p[i]&&r(i))s=0,c++;}g<<c<<'\n';for(i=1;i<=n;i++)if(p[i])g<<i<<' '<<p[i]-n<<'\n';}