#include using namespace std; //座標を表す構造体 struct coord{ long long x,y; bool operator==(coord&other){ return this->x==other.x && this->y==other.y; } }; int main(){ int N,M; cin>>N>>M; vector> xy(N); for(int i=0;i>x1>>y1>>x2>>y2; xy[i]={{x1,y1},{x2,y2}}; } //Floyd-Warshall法を実行する vector> dp(N+N,vector(N+N,1E18)); //DPテーブルの初期化 for(int i=0;i=0 || s2*t2>=0)){ flag=false; break; } } if(flag){ dp[i][j]=sqrt((xy1.x-xy2.x)*(xy1.x-xy2.x)+(xy1.y-xy2.y)*(xy1.y-xy2.y)); } } } //DPテーブルの更新 for(int k=0;k>a>>b>>c>>d; cout<