What’s the opcode sequence for doing the reverse of Multisig? With a multisig wallet, several public keys are needed to spend an amount. But how to perform the reverse with time ?

I’m talking about this case where Alice performs a transaction where the output is sent to both Bob and Victor. With one point : Bob will be able to spend the transaction output immediately while Victor will only be able to do it after waiting some time if Bob didn’t spend it before Victor is allowed to do so.
It doesn’t matter if Bob is still able to spend the output after Victor can. However Alice can’t get the public keys from Bob and Victor but only their address.

I’m thinking about something using OP_CHECKLOCKTIMEVERIFY or CHECKSEQUENCEVERIFY or nLockTime but I definitely fail to think about what the whole Opcode sequence might looks like.
The following scriptPubKey describes the desired contract:

OP_IF
    OP_DUP OP_HASH160 &lt;Bob's pubKeyHash&gt;
OP_ELSE
    &lt;now+30 days&gt; OP_CHECKLOCKTIMEVERIFY OP_DROP
    OP_DUP OP_HASH160 &lt;Victor's pubKeyHash&gt;
OP_ENDIF
OP_EQUALVERIFY OP_CHECKSIG


Bob can spend the output using the scriptSig &lt;Bob's signature&gt; &lt;Bob's pubKey&gt; OP_TRUE
Victor can spend the output after 30 days using the scriptSig &lt;Victor's signature&gt; &lt;Victor's pubKey&gt; OP_FALSE.