Cloud is the opposite of Clear. Clear is a synonym of Solve. Solution is derived from Solve. 
Difficult is a different concept from Hard. 
Cloud <--Antonym--> Clear <--Synonym--> Solve <--DerivedFrom-- Solution 
Difficult <--DistinctFrom--> Hard 