// Solución oficial óptima O(N log N): Ordena los valores de forma descendente y evalúa // tomar los mejores 'm' elementos (desde k hasta N). Utiliza una técnica de dos punteros // donde la variable 'quietos' (elementos que ya superan el umbral 'mid') avanza monótonamente // sin reiniciarse, lo que permite calcular el coste para cada 'm' en O(1) amortizado. #include using namespace std; void solve(){ int n,k; double D; cin >> n >> k >> D; vector v(n); for (int i=0;i> v[i]; sort(v.begin(),v.end()); reverse(v.begin(),v.end()); vector pref(n+1); for (int i=0;imid) quietos++; else break; } double ans=mid*(m-quietos)-(pref[m]-pref[quietos]); // cerr << m << ": " << ans << '\n'; bestans=min(bestans,ans); } cout << fixed << setprecision(6) << bestans << '\n'; } int main(){ int t; cin >> t; while (t--){ solve(); } }