Line separates two sets of points
Both uli and Dave Clarke correctly observe that this is a linear programming problem, even in higher dimensions (Can these two point sets be separated by a hyperplane?) and so it can be solved in polynomial time.  But because your points lie in the plane, your problem can actually be solved in $O(n)$ time, where $n$ is the total number of points.

The simplest solution is probably Seidel's randomized algorithm.  Choose an input point $p$ uniformly at random, and recursively compute a separating line $\ell$ for all the points except $p$.


If no such line exists, then the original points are not separable.
If $p$ is on the correct side of $\ell$, then $\ell$ separates the original points.
If $p$ is on the wrong side of $\ell$, then either the original points can be separated by a line through $p$, or the original points are not separable at all.  This condition is easy to check in $O(n)$ time [exercise].


This algorithm runs in $O(n)$ time with high probability (with respect to the algorithm's random choices).  For more details, see the original paper or any number of online lecture notes.