--- 4.cpp.new	Fri May 23 15:31:57 2008
+++ 4.cpp.new2	Fri May 23 15:32:13 2008
@@ -72,7 +72,8 @@
 		std::vector<std::vector<long> >(max_x,
 			std::vector<long>(m + 1, std::numeric_limits<long>::max())));
 
-	dp[0] = std::vector<std::vector<long> >(max_x, std::vector<long>(m + 1, 0));
+	std::vector<std::vector<long> >(max_x,
+		std::vector<long>(m + 1, 0)).swap(dp.front());
 
 	REPE(y1, 0, n) REP(x1, 0, max_x) if (slip[y1][x1] >= 0) // source
 	{
