You can have your own opinion as to whether this is efficient in some sense. But if you want to solve the problem, then finding a solution can be considered more efficient than not finding a solution.

Here is the code to solve this using the global optimizer BARON under YALMIP.

```
x=sdpvar(length(A),1)
optimize([x'*B*x==1,x'*C*x==1],x'*A*x,sdpsettings('solver','baron'))
```

Depending on the values of B and C, this can solve quite quickly to find the global minimum.

Given that B and C have non-overlapping non-zeros, per the OP's comment, the constraints are the product of two Riemannian manifolds, so manifold optimization could be used, as for instance with MANOPT https://manopt.org/ . I have no idea how well it will do vs. BARON, but it will not be guaranteed to find a global minimum.