Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<stdio.h>#define NMAX 20010#define MMAX 100010bool visitor[NMAX];int low[NMAX],dfn[NMAX],parent[NMAX];int head[NMAX],headq[NMAX];int paths[MMAX<<1][4];//to,nextno,same,flagint waitqueue[NMAX];int N,M;int p,id,q;int res[NMAX],num;char ch;void F(int &aa){aa=0;while(ch=getchar(),(ch<'0'||ch>'9')&&(ch!='-'));while(ch>='0'&&ch<='9') {aa=(aa<<3)+(aa<<1)+ch-'0';ch=getchar();}}void AddPath(int u,int v){paths[++p][0]=v;paths[p][1]=head[u];paths[p][2]=p+1;head[u]=p;paths[++p][0]=u;paths[p][1]=head[v];paths[p][2]=p-1;head[v]=p;}