제출 #90021

#제출 시각아이디문제언어결과실행 시간메모리
90021Bodo171결혼 문제 (IZhO14_marriage)C++14
80 / 100
1575 ms12316 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]]) { l[x]=v[x][it]; r[v[x][it]]=x; return 1; } for(int it=0;it<v[x].size();it++) if(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) { 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++) { cc(); while(cupl==m) { if(l[p]) r[l[p]]=0,cupl--; p++; cc(); } ans+=(p-1); } cout<<ans; return 0; }

컴파일 시 표준 에러 (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++)
                  ~~^~~~~~~~~~~~
marriage.cpp:23: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...