I have three headers A,B,C here A is always mandatory and either B or C should be present only one at a time in request.
How to implement in raml 1.0
It doesn't look like RAML can validate that kind of conditions. About headers the RAML specification only says:
the value of the headers node MUST be a map, specifically a properties declaration. Each property in this declaration object is a header declaration. Each property name specifies an allowed header name. Each property value specifies the header value type as a type name or an inline type declaration.
Assuming that you are implementing this RAML API in Mule runtime with APIKit then you will need to implement the restriction in the body of the flow.