Union of 2 cfl is always cfl and here both the languages given is CFL .So, L is a CFL but...
But we need to check wether L is DCFL or not . Union of 2 DCFL may or may not be DCFL but here the langauage generated after union is DCFL .
Reason :
L : Lanaguages having equal no of a and b or no of a is twice the no of b
push 2 a for each a and after all a's are over then see if next symbole is c or d. It will go to 2 different statet based on this. if next symbole is c then delete 2 a for each b otherwise delete one a for each b. No non-determ required ,