Ricardo, he is looking for 4 LEDs and 1 switch. Your cicruit is amost what he needs, but remove a switch and put the fourth LED on GP4, since GP3 is an input only.
For software, you're going to want to use the counter to check for the button press, so that your program will know how long you are pressing the button. Since you have a 3 second for clearing the LEDs, it's a pretty simply compare function, simply set up a timer interupt, and if the switch is closed, start incrementing a variable. If the switch is closed, and the variable has a value higher than 0, turn on the next LED sequence, and clear the variable. If the variable hits the number associated with 3 seconds, clear the LED sequence.
Hope this helps.