Codeforces Round #411 (Div. 2), problem: (E) Ice cream coloring Solution In C/C++

By | 2017-07-24T02:06:43+00:00 July 24th, 2017|Categories: C/C++, Programming|Tags: , , |

#include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<set> using namespace std; const int MX=600111; int n,m; int pool[MX],*c[MX],s[MX]; int hed[MX],nxt[MX],t[MX],ec,vis[MX],vism[MX],no[MX]; set<int>cur; inline void ade(int u,int v){ ec++;nxt[ec]=hed[u];t[ec]=v;hed[u]=ec; } void dfs(int k){ vis[k]=1; for(int *i=c[k];i!=c[k+1];i++)if(vism[*i])cur.erase(no[*i]); for(int *i=c[k];i!=c[k+1];i++)if(!vism[*i]){ no[*i]=*(cur.lower_bound(1)); cur.erase(no[*i]); vism[*i]=1; } for(int *i=c[k];i!=c[k+1];i++)cur.insert(no[*i]); for(int i=hed[k];i;i=nxt[i])if(!vis[t[i]])dfs(t[i]); } int main(){ [...]