結果
| 問題 | 
                            No.3219 Ruler to Maximize
                             | 
                    
| コンテスト | |
| ユーザー | 
                             ジュ・ビオレ・グレイス
                         | 
                    
| 提出日時 | 2025-08-01 22:26:48 | 
| 言語 | D  (dmd 2.109.1)  | 
                    
| 結果 | 
                             
                                WA
                                 
                             
                            
                         | 
                    
| 実行時間 | - | 
| コード長 | 1,104 bytes | 
| コンパイル時間 | 1,683 ms | 
| コンパイル使用メモリ | 93,716 KB | 
| 実行使用メモリ | 7,720 KB | 
| 最終ジャッジ日時 | 2025-08-01 22:26:54 | 
| 合計ジャッジ時間 | 5,018 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 15 WA * 17 | 
ソースコード
import std.stdio, std.algorithm, std.array, std.conv, std.typecons;
void main() {
	readln;
	auto A = readln.split.to!(ulong[]);
	auto N = A.length;
	
	Set[2^^12] realize;
	ulong[Set] or_vals;
	or_vals[Set(0, 0)] = 0;
	foreach (i, a; A) foreach (set, val; or_vals) {
		auto set2 = add(set, i);
		auto val2 = val | a;
		
		// new value
		if (realize[val2] == Set(0, 0)) realize[val2] = set2, or_vals[set2] = val2;
	}
	
	ulong[Set] wb_vals;
	foreach (set, val; or_vals) {
		ulong b;
		foreach (i, a; A)
			if (!i.is_in(set)) b |= a;
		if ((val & b) == 0) wb_vals[set] = val * b;
	}
	
	Set ans;
	foreach (set, val; wb_vals) {
		if (val > wb_vals[ans]) ans = set;
	}
	
	writeln(wb_vals[ans]);
	foreach (i; 0 .. N) {
		write(i.is_in(ans) ? "W" : "B");
	}
	writeln;
}
alias Set = Tuple!(ulong, ulong);
bool is_in(ulong i, Set a) {
	if (i <= 63) return (a[0] & 2^^i) != 0;
	else return (a[1] & 2^^(i-64)) != 0;
}
Set add(Set a, ulong i) {
	if (i <= 63) a[0] |= 2^^i;
	else a[1] |= 2^^(i-64);
	
	return a;
}
Set remove(Set a, ulong i) {
	if (i <= 63) a[0] &= ~(2^^i);
	else a[1] |= ~(2^^(i-64));
	
	return a;
}
            
            
            
        
            
ジュ・ビオレ・グレイス