結果

問題 No.3114 0→1
ユーザー TK
提出日時 2025-04-19 10:50:02
言語 JavaScript
(node v23.5.0)
結果
TLE  
実行時間 -
コード長 1,034 bytes
コンパイル時間 684 ms
コンパイル使用メモリ 8,224 KB
実行使用メモリ 81,696 KB
最終ジャッジ日時 2025-04-19 10:50:17
合計ジャッジ時間 7,729 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample -- * 3
other TLE * 1 -- * 29
権限があれば一括ダウンロードができます

ソースコード

diff #

function Main(ldata){
	let data = ldata.trim().split(/\n|\r\n/)[1];
	let i = 0;
	
	while(data.match(/0100+/) != null){
		l = data.match(/0100+/)[0].length;
		if(l % 3 == 1){
			data = data.replace(/0100+/, "0110");
			i += (l-1)*2 / 3;
		}else if(l % 3 == 2){
			data = data.replace(/0100+/, "01101");
			i += 1 + (l-2)*2 / 3;
		}else{
			data = data.replace(/0100+/, "011011");
			i += l*2 / 3;
		}
	}
	
	while(data.match(/00+/) != null){
		l = data.match(/00+/)[0].length;
		if(l % 3 == 1){
			data = data.replace(/00+/, "0110");
			i += (l-1)*2 / 3;
		}else if(l % 3 == 2){
			data = data.replace(/00+/, "01101");
			i += (l+1)*2 / 3;
		}else{
			data = data.replace(/00+/, "011");
			i += l*2 / 3;
		}
	}
	
	while(data.match(/0(10)+/) != null){
		l = data.match(/0(10)+/)[0].length;
		if(l % 4 == 1){
			data = data.replace(/0(10)+/, "01110");
			i += (l-1) / 4;
		}else if(l % 4 == 3){
			data = data.replace(/0(10)+/, "011");
			i += (l+1) / 4;
		}
	}
	
	console.log(i);
}

Main(require('fs').readFileSync('/dev/stdin','utf8'));
0