30 lines
678 B
C++
30 lines
678 B
C++
#include <iostream>
|
|
#include <cmath>
|
|
#include <vector>
|
|
using namespace std;
|
|
|
|
double dist(const pair<int, int>& x, const pair<int, int>& y){
|
|
double r = sqrt( (y.first - x.first) * (y.first - x.first) + (y.second - x.second) * (y.second - x.second) );
|
|
return r;
|
|
}
|
|
|
|
int main(){
|
|
int n;
|
|
cin >> n;
|
|
vector<pair<int, int>> m(n);
|
|
for(int i = 0; i < n; i++){
|
|
cin >> m[i].first >> m[i].second;
|
|
}
|
|
vector<vector<int>> dp(n, vector<int>(n, 0));
|
|
int k = 0;
|
|
//dp[0][0] = 0;
|
|
int i = 0, j = 0;
|
|
while(dp[n - 1][n - 1] == 0){
|
|
k = max(i, j) + 1;
|
|
dp[i][k] = min(d[i][k], d[i][j] + dist(m[k], m[j]));
|
|
dp[k][j] = min(d[k][j], d[i][j] + dist(m[k], m[i]));
|
|
i++;j++;
|
|
}
|
|
return 0;
|
|
}
|