#include #include #include #include #include using namespace std; ifstream in("zebras.in"); #define cin in int k, z, t; double a, b, c, ans[50][1024], x[10], y[10], d[10][10][2]; int main() { cin >> k; for (int i = 1; i <= k; i++) { cout << "Data Set " << i << ":\n"; cin >> z >> t >> a >> b >> c; for (int j = 0; j < t; j++) { for (int p = 0; p < z; p++) cin >> x[p] >> y[p]; for (int p = 0; p < z; p++) for (int q = p + 1; q < z; q++) { double dis = sqrt((x[p]-x[q])*(x[p]-x[q]) + (y[p]-y[q])*(y[p]-y[q])); d[p][q][0] = a * dis; d[p][q][1] = -b * dis; } for (int p = 0; p < (1 << z); p++) { ans[j][p] = 0.0; for (int q = 0; q < z; q++) for (int r = q + 1; r < z; r++) if ( ((p&(1< 0) { double min = 1e50; for (int q = 0; q < (1 << z); q++) { int nDiff = 0; for (int r = (q^p); r > 0; r>>=1) nDiff += (r&1); if (ans[j-1][q] + c*nDiff < min) min = ans[j-1][q] + c*nDiff; } ans[j][p] += min; } } } double min = 1e50; for (int j = 0; j < (1 << z); j++) if (ans[t-1][j] < min) min = ans[t-1][j]; printf ("%.2f\n\n", min); } return 0; }