Идея Леонида, возможно, более наивная.
f[a_, b_, c_] :=
ListPlot[Pick[Transpose[{a, b}], c, #] & /@ {0, 1},
PlotStyle -> {PointSize[Large], {Blue, Red}}]
f[a, b, c]

Редактировать: просто для удовольствия
f[h_, a_, b_, c_, opt___] :=
h[Pick[Transpose[{a, b}], c, #] & /@ {0, 1},
PlotStyle -> {PointSize[Large], {Blue, Red}}, opt]
f[ ListPlot,
Sort@RandomReal[1, 100],
Sin[(2 \[Pi] #)/100] + RandomReal[#/100] & /@ Range[100],
RandomInteger[1, 100],
Joined -> True,
InterpolationOrder -> 2,
Filling -> Axis]
