#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main(){ int N; cin >> N; pair points[N]; for( int i = 0 ; i > points[i].first>> points[i].second; } vector > edge[N]; for( int i = 0; i q; q.push(0); arrived[0]=true; bool ok = false; while(ok==false&&!q.empty()){ int cur = q.top(); q.pop(); for( int i = 0; i dist*dist ) break; if( arrived[edge[cur][i].second] ) continue; if( edge[cur][i].second == N-1){ ok=true; break; } arrived[edge[cur][i].second]=true; q.push(edge[cur][i].second); } } if( ok ){ right = mid; } else{ left = mid; } } cout << right*10; return 0; }