Submission #90024

#TimeUsernameProblemLanguageResultExecution timeMemory
90024Bodo171Marriage questions (IZhO14_marriage)C++14
80 / 100
1585 ms2656 KiB
#include <iostream> #include <fstream> #include <vector> using namespace std; const int nmax=30005; vector<int> v[nmax]; int l[nmax],r[nmax]; bool viz[nmax]; bool changed; int n,m,i,j,k,a,b,p,cupl,ans; bool cup(int x) { if(viz[x]) return 0; viz[x]=1; for(int it=0;it<v[x].size();it++) if((!r[v[x][it]])||cup(r[v[x][it]])) { l[x]=v[x][it]; r[v[x][it]]=x; return 1; } return 0; } void cc() { changed=1; while(changed&&cupl<m) { changed=0; for(j=p; j<=i; j++) if((!l[j])&&cup(j)) { cupl++; changed=1; } for(j=p; j<=i; j++) viz[j]=0; } } int main() { //freopen("data.in","r",stdin); ios_base::sync_with_stdio(false); cin>>n>>m>>k; for(i=1;i<=k;i++) { cin>>a>>b; v[a].push_back(b); } p=1; for(i=1;i<=n;i++) { if(i>=m)cc(); while(cupl==m) { if(l[p]) r[l[p]]=0,cupl--; p++; cc(); } ans+=(p-1); } cout<<ans; return 0; }

Compilation message (stderr)

marriage.cpp: In function 'bool cup(int)':
marriage.cpp:16:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int it=0;it<v[x].size();it++)
                  ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...