SRM319 div2

medium
できなかった。時間かかり過ぎ.
端的に言うと、条件を満たす3点をとってその最小の長さをとるというもの.
距離順にソートしてからだと(0, 0) (0, 1)(1, 0)(0, 2)
みたいになってしまいうまくいかない.

  double getArrangement(string leftRow, string rightRow) {
    const int row = 2;
    const int col = 10;
    vector<string> s(2);
    s[0] = leftRow; s[1] = rightRow;
    
    vector<dot> seats;
    for(int i = 0; i < row; i++) {
      for(int j = 0; j < col; j++) {
	if(s[i][j] == '-') {
	  seats.push_back(dot(i, j) );
	}
      }
    }
       				  
    sort(seats.begin(), seats.end(), cmp() );
    int sz = seats.size();
    double ans = INF;
    for(int i = 2; i < sz; i++) {
      double tmp = calc(seats[i-2].X-seats[i-1].X, seats[i-2].Y-seats[i-1].Y) +
	calc(seats[i-1].X-seats[i].X, seats[i-1].Y-seats[i].Y) +
	calc(seats[i].X-seats[i-2].X, seats[i].Y-seats[i-2].Y);
      ans = min(ans, tmp);
    }
    return ans;
  }