Submission #38525

#TimeUsernameProblemLanguageResultExecution timeMemory
38525alenam0161Marriage questions (IZhO14_marriage)C++14
66 / 100
1500 ms3124 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e3+7; vector<int> g[N],g1[N],gag,kox; int n,m,k; bool used[N]; int ma[N]; bool try_khun(int v){ if(used[v]==true)return false; used[v]=true; gag.push_back(v); for(auto to:g[v]){ if(ma[to]==-1||try_khun(ma[to])){ if(ma[to]==-1)kox.push_back(to); ma[to]=v; return true; } } return false; } int main(){ memset(ma,-1,sizeof(ma)); scanf("%d%d%d",&n,&m,&k); for(int i=1;i<=k;++i){ int u,v; scanf("%d%d",&v,&u); g[v].push_back(u); g1[u].push_back(v); } int how=0; long long ans=0; int l=1; bool ok=false; for(int i=1;i<=n;++i){ if(try_khun(i))how++; bool ok=false; while(how==m||ok==false){ l++; ok=true; how=0; for(int to:kox){ ma[to]=-1; } kox.clear(); for(int j=l;j<=i;++j){ for(int to:gag)used[to]=false; gag.clear(); how+=try_khun(j); } } l--; for(int to:gag)used[to]=false; gag.clear(); how+=try_khun(l); // cout<<l<<" "<<i<<" "<<how<<endl; if(how==m) ans+=l; } cout<<ans<<endl; return 0; }

Compilation message (stderr)

marriage.cpp: In function 'int main()':
marriage.cpp:35:10: warning: unused variable 'ok' [-Wunused-variable]
     bool ok=false;
          ^
marriage.cpp:25:29: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d%d",&n,&m,&k);
                             ^
marriage.cpp:28:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d",&v,&u);
                            ^
#Verdict Execution timeMemoryGrader output
Fetching results...