Are Relay Addresses Possible?
Related: In the bitcoin scripting language, how can I access other outputs of the transaction? Or how else can I limit how the coins may be spent?

You cannot create your specified spend conditions with Bitcoin script directly, because you cannot specify the nature of a future output within an input's script. Put differently, an input's script cannot define the outputs created from it. 

You could perhaps achieve a similar result using a multisig address, and a third party 'rule engine' signer or similar (credit to @RaghavSood in the answer I linked to above), but it is not possible to program a Bitcoin address to behave this way independently.