http://www.getacoder.com/projects/solve%20p%20vs%20np_132036.html