dengxinyi 6 年 前
コミット
e774b9bba1
1 ファイル変更5 行追加11 行削除
  1. 5 11
      poj/1113.wall/main.cc

+ 5 - 11
poj/1113.wall/main.cc

@@ -50,19 +50,11 @@ int main() {
     }
     stack.push_back(p);
   }
-  double len = 0.;
-  Point pre = *(stack.begin());
-  vector<Point>::iterator it;
-  for (it = ++stack.begin(); it != stack.end(); ++it) {
-    len += dist(pre, *it);
-    pre = *it;
-  }
-  stack.clear();
-  stack.push_back(point[n - 1]);
+  int size = stack.size();
   stack.push_back(point[n - 2]);
   for (int i = n - 3; 0 <= i; i--) {
     Point& p = point[i];
-    while (1 < stack.size()) {
+    while (size < stack.size()) {
       Point p1 = *(stack.end() - 1);
       Point p2 = *(stack.end() - 2);
       if (((p2 - p1) ^ (p - p2)) < 0)
@@ -72,7 +64,9 @@ int main() {
     }
     stack.push_back(p);
   }
-  pre = *(stack.begin());
+  double len = 0.;
+  Point pre = *(stack.begin());
+  vector<Point>::iterator it;
   for (it = ++stack.begin(); it != stack.end(); ++it) {
     len += dist(pre, *it);
     pre = *it;