A YouGov poll for The Sun puts the Tories on 40 per cent ( up three points ) , Labour 31 per cent ( down one point ) and Liberal Democrats 18 ( down one ) , which would give Mr Cameron an overall majority of four seats .