https://codeforces.com/contest/1002/problem/A3
$N$桁の量子状態$\ket{0...0}$と、$N$桁の量子状態$\ket{\psi_0},\ket{\psi_1}$を表すbit列$bits0,bits1$が与えられる。$\ket{\psi_0}$と$\ket{\psi_1}$の重ね合わせ状態 $$\ket{S}=\frac{1}{\sqrt{2}}\left( \ket{\psi_0}+\ket{\psi_1} \right)$$ を作れ。
2つの手順で解けます。
これで、この問題が解けました。
namespace Solution {
open Microsoft.Quantum.Primitive;
open Microsoft.Quantum.Canon;
operation Solve (qs : Qubit[], bits0 : Bool[], bits1 : Bool[]) : ()
{
body
{
//手順1
mutable idx=-1;
for(i in 0..Length(qs)-1){
if(bits0[i]!=bits1[i]){
if(idx==-1){
H(qs[i]);
set idx=i;
}
else{
CNOT(qs[idx],qs[i]);
}
}
}
//手順2
for(i in 0..Length(qs)-1){
if(bits0[i]){
X(qs[i]);
}
}
}
}
}