結果

問題 No.130 XOR Minimax
ユーザー ゴリポン先生
提出日時 2025-09-29 17:59:00
言語 D
(dmd 2.109.1)
結果
WA  
実行時間 -
コード長 554 bytes
コンパイル時間 5,943 ms
コンパイル使用メモリ 171,524 KB
実行使用メモリ 7,984 KB
最終ジャッジ日時 2025-09-29 17:59:10
合計ジャッジ時間 10,053 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 2 WA * 19
権限があれば一括ダウンロードができます

ソースコード

diff #

module main;
// https://kmjp.hatenablog.jp/entry/2015/01/17/0900 より
// ビット演算
import std;

int f(int d, int[] v)
{
	if (v.length <= 1) return 0;
	int i, j;
	auto w = new int[][](2);
	foreach (x; v) {
		w[(x >> d) & 1] ~= x ^ (x & (1 << d));
	}

	if (w[0].empty) return f(d - 1, w[1]);
	if (w[1].empty) return f(d - 1, w[0]);

	return 1 << d + min(f(d - 1, w[0]), f(d - 1, w[1]));
}

void main()
{
	// 入力
	auto N = readln.chomp.to!int;
	auto A = readln.split.to!(int[]);
	// 答えの計算と出力
	writeln(f(29, A.sort.uniq.array));
}
0