結果

問題 No.2397 ω冪
コンテスト
ユーザー id-ord
提出日時 2026-01-27 10:34:33
言語 C++23
(gcc 15.2.0 + boost 1.89.0)
結果
AC  
実行時間 99 ms / 2,000 ms
コード長 808 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,576 ms
コンパイル使用メモリ 238,524 KB
実行使用メモリ 7,844 KB
最終ジャッジ日時 2026-01-27 10:34:43
合計ジャッジ時間 4,613 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 41
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <iostream>
#include <boost/dynamic_bitset/dynamic_bitset.hpp>
using bs=boost::dynamic_bitset<>;
bool cmp(const bs& x,const bs& y){
	size_t hx=0,hy=0,mx=0,my=0,cx=0,cy=0,k;
	while(true){
		while(true){
			if(0==(k=y.find_first(hy)+1))break;
			if(cmp(bs(20,k-hy-1),bs(20,my))){hy=k;continue;}
			my=k-hy-1;hy=k;
			if(cmp(bs(20,my),bs(20,mx))){cy=0;continue;}
			cy++;
			if(cmp(bs(20,mx),bs(20,my)))break;
			if(cx<cy)break;
		}
		if(k==0)return false;
		while(true){
			if(0==(k=x.find_first(hx)+1))break;
			if(cmp(bs(20,k-hx-1),bs(20,mx))){hx=k;continue;}
			mx=k-hx-1;hx=k;
			if(cmp(bs(20,mx),bs(20,my))){cx=0;continue;}
			cx++;
			if(cmp(bs(20,my),bs(20,mx)))break;
			if(cy<=cx)break;
		}
		if(k==0)return true;
	}
}
int main(){
	bs N,M;
	std::cin>>N>>M;
	std::cout<<(cmp(N,M)?"Yes":"No");
}
0