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

Изменить знак всех состояний кроме нулевого

Вход — регистр из $N$ кубитов в произвольном состоянии.

Напишите операцию на языке Q#, оставляющую $|0\ldots0\rangle$ без изменения и умножающую каждое другое базисное состояние на $-1$. То есть требуется оператор

$$2|0\ldots0\rangle\langle0\ldots0|-I=\operatorname{diag}(1,-1,\ldots,-1).$$

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

namespace Kata {
    import Std.Math.*;

    operation ConditionalPhaseFlip(qs : Qubit[]) : Unit is Adj + Ctl {
        // Implement your solution here...

    }
}