#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define rep(i,a,n) for (int i=a;i=a;i--) #define pb push_back #define mp make_pair #define all(x) (x).begin(),(x).end() #define fi first #define se second #define SZ(x) ((int)(x).size()) #define ACCU accumulate #define TWO(x) (1<<(x)) #define TWOL(x) (1ll<<(x)) #define clr(a) memset(a,0,sizeof(a)) #define POSIN(x,y) (0<=(x)&&(x) VI; typedef vector VS; typedef vector VD; typedef long long ll; typedef long double LD; typedef pair PII; typedef pair PLL; typedef vector VL; typedef vector VPII; typedef complex CD; const int inf=0x20202020; const ll mod=1000000007; const double eps=1e-9; const double pi=3.1415926535897932384626; const int DX[]={1,0,-1,0},DY[]={0,1,0,-1}; ll powmod(ll a,ll b) {ll res=1;a%=mod;for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;} ll powmod(ll a,ll b,ll mod) {ll res=1;a%=mod;for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;} ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;} // head const int N=210; vector > e[N]; int f[N],p[N],a[N],b[N],u[N],v[N]; int n,m,T,C; double w[N]; vector mt; inline bool cmp(const int &a,const int &b) { return w[a]>w[b];} double dfs(int u,int f,double w) { double res=(u==1?0:w); rep(i,0,SZ(e[u])) { int v=e[u][i].fi; if (v==f) continue; res+=dfs(v,u,min(w,e[u][i].se)); } return res; } int find(int u) { return f[u]==u?u:f[u]=find(f[u]);} double solve(double t) { rep(i,0,m) w[i]=b[i]*t+a[i],p[i]=i; sort(p,p+m,cmp); rep(i,1,n+1) f[i]=i,e[i].clear(); int tot=n-1; rep(i,0,m) { int U=u[p[i]],V=v[p[i]]; double W=w[p[i]]; if (find(U)!=find(V)) { f[find(U)]=find(V); e[U].pb(mp(V,W)); e[V].pb(mp(U,W)); --tot; } if (tot==0) break; } return dfs(1,0,1e30); } int main() { for (scanf("%d",&C);C;C--) { scanf("%d%d%d",&n,&m,&T); rep(i,0,m) scanf("%d%d%d%d",u+i,v+i,a+i,b+i); mt.clear(); rep(i,0,m) rep(j,i+1,m) if (b[i]!=b[j]) { double t=1.*(a[j]-a[i])/(b[i]-b[j]); if (t>0&&t