cafelier のSRM参加記録です。コンテスト中に考えてたことを執拗に全部書き残すとどうなるだろうかという試み本番中にこういうコードが書きたかったなあ、という後で書いた反省コードを書き残す試み
スパムが来たのでしばらくコメント欄をはてなユーザ限定にしています、すみません、
Dで。3進数マスクすぐ作れるのはいい感じ。Largeわからなかった。
#!/usr/bin/rdmd import std.algorithm; import std.array; import std.conv; import std.stdio; import std.string; import std.range; void solve(in long[] S) { const N = S.length; for(int m=0; m<3^^N; ++m) { auto S1 = iota(N).filter!((i){return m/(3^^i)%3==1;}).map!((i){return S[i];}).array; auto S2 = iota(N).filter!((i){return m/(3^^i)%3==2;}).map!((i){return S[i];}).array; long S1_sum = reduce!"a+b"(0L, S1); long S2_sum = reduce!"a+b"(0L, S2); if(S1_sum>0 && S2_sum>0 && S1_sum==S2_sum) { writeln(S1.map!(to!string).join(" ")); writeln(S2.map!(to!string).join(" ")); return; } } writeln("Impossible"); } void main() { const T = readln.chomp.to!int; foreach(t; 0..T) { writefln("Case #%d:", t+1); solve(readln.split.map!(to!long).array[1..$]); } }
presented by cafelier/k.inaba under