https://codeforces.com/contest/1001/problem/F
N桁のqubit状態とbit列$bits0,bits1$が与えられる。与えられた状態が$bits0,bits1$のどちらであるか調べ、$bits0$であれば0を、$bits1$であれば1を返せ。
すべてのqubitに対してPauli Zを対角とする測定をして、どちらのbit列であるか調べればよいです。
namespace Solution {
open Microsoft.Quantum.Primitive;
open Microsoft.Quantum.Canon;
operation Solve (qs : Qubit[], bits0 : Bool[], bits1 : Bool[]) : Int
{
body
{
for(i in 0..Length(qs)-1){
let state=(M(qs[i])!=Zero);
if(state!=bits0[i]){
return 1;
}
if(state!=bits1[i]){
return 0;
}
}
return 0;
}
}
}