Anyone who has travelled from Canada to US via plane will know that, Flights coming from Canada to US have US immigration check in Canada itself and not in US. So you will need a transit visa. If you are coming by road, then also you will need a transit visa. Sorry I do not know the cost, but you can go to the website of US consulate near to you in Canada. Call them.
Thanks.