№ 1533Квантовые вычисленияУровень 2

Различить Y и последовательность Z затем X

Вход — операция на одном кубите, реализующая либо $Y$, либо последовательность вентилей Паули: сначала $Z$, затем $X$, то есть матрицу $XZ$. Напишите операцию на языке Q#, возвращающую 0 для $Y$ и 1 для $XZ$.

Для операции определены обратный вариант Adjoint и управляемый вариант Controlled. Разрешено суммарно не более двух обращений к переданной операции или её вариантам.

Заготовка Q#:

namespace Kata {
    operation DistinguishYfromXZ (unitary : (Qubit => Unit is Adj + Ctl)) : Int {
        // Implement your solution here...

        return -1;
    }
}