結果

問題 No.1553 Lovely City
ユーザー tailstails
提出日時 2021-06-18 22:17:47
言語 cLay
(20240714-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
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
5,248 KB
testcase_01 AC 2 ms
5,376 KB
testcase_02 AC 41 ms
32,000 KB
testcase_03 AC 2 ms
5,376 KB
testcase_04 AC 2 ms
5,376 KB
testcase_05 AC 1 ms
5,376 KB
testcase_06 AC 2 ms
5,376 KB
testcase_07 AC 2 ms
5,376 KB
testcase_08 AC 47 ms
22,872 KB
testcase_09 WA -
testcase_10 AC 68 ms
31,436 KB
testcase_11 WA -
testcase_12 WA -
testcase_13 AC 41 ms
19,544 KB
testcase_14 WA -
testcase_15 WA -
testcase_16 WA -
testcase_17 AC 52 ms
25,664 KB
testcase_18 WA -
testcase_19 WA -
testcase_20 WA -
testcase_21 WA -
testcase_22 WA -
testcase_23 WA -
testcase_24 WA -
testcase_25 WA -
testcase_26 WA -
testcase_27 WA -
権限があれば一括ダウンロードができます

ソースコード

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