結果

問題 No.1370 置換門松列
ユーザー 👑 Nachia
提出日時 2021-01-30 20:54:50
言語 cLay
(20241019-1)
結果
AC  
実行時間 21 ms / 2,000 ms
コード長 449 bytes
コンパイル時間 2,731 ms
コンパイル使用メモリ 177,060 KB
実行使用メモリ 10,428 KB
最終ジャッジ日時 2024-09-14 19:24:34
合計ジャッジ時間 3,880 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 5
other AC * 25
権限があれば一括ダウンロードができます

ソースコード

diff #

#define PB push_back
int N,M,A[1d5+1],I[1d5]={},ans[1d5],q=0;
VI E[1d5],V,Q;

{
	rd(N,M,A(N)--);
	rep(i,N-2) if(A[i]==A[i+2]) wt("No"),exit(0);
	rep(i,N-1){
		if(i%2) E[A[i+1]].PB(A[i]),I[A[i]]++;
		else E[A[i]].PB(A[i+1]),I[A[i+1]]++;
	}
	rep(i,M) if(I[i]==0) Q.PB(i);
	while(q<Q.size()){
		int p=Q[q++];
		V.PB(p);
		for(int e:E[p]) if(0==--I[e]) Q.PB(e);
	}
	if(V.size()!=M) wt("No"),exit(0);
	wt("Yes");
	rep(i,M) ans[V[i]]=i+1;
	wt(ans(M));
}
0