結果

問題 No.1553 Lovely City
ユーザー tails
提出日時 2021-06-18 22:17:47
言語 cLay
(20241019-1)
結果
WA  
実行時間 -
コード長 872 bytes
コンパイル時間 3,164 ms
コンパイル使用メモリ 189,636 KB
実行使用メモリ 37,484 KB
最終ジャッジ日時 2024-07-05 15:15:55
合計ジャッジ時間 9,794 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 10 WA * 16
権限があれば一括ダウンロードができます

ソースコード

diff #

{
	VI resu,resv;

	graph g;
	int @n,@m;
	VI u(m),v(m);
	rd((u,v)(m));
	g.setDirectEdge(n+1,m,u.data(),v.data());
	VI ss(n+1);
	int sn=g.scc(ss.data());
//	VVI vvi(sn);
	vector<VI> vvi(sn);
	rep(i,1,n+1){
		vvi[ss[i]].push_back(i);
	}
	rep(j,sn){
		int n=vvi[j].size();
		if(n>1){
			rep(k,n-1){
				resu.push_back(vvi[j][k]);
				resv.push_back(vvi[j][k+1]);
			}
			resu.push_back(vvi[j][n-1]);
			resv.push_back(vvi[j][0]);
		}
	}

	unionFind uf;
	uf.walloc(n+1,1);
	rep(i,m){
		int su=ss[u[i]];
		int sv=ss[v[i]];
		if(su!=sv){
			uf(su,sv);
		}
	}
	vector<VI> vv(sn);
	rep(i,sn){
		vv[uf(i)].push_back(i);
	}
	rep(i,sn){
		int n=vv[i].size();
		if(n>1){
			sort(vv[i].begin(),vv[i].end());
			rep(j,n-1){
				resu.push_back(vvi[vv[i][j]][0]);
				resv.push_back(vvi[vv[i][j+1]][0]);
			}
		}
	}

	wt(int(resu.size()));
	rep(i,resu.size()){
		wt(resu[i],resv[i]);
	}
}
0