이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
const int nx=505;
double n, k, a[nx], b[nx], cnt, c[nx];
double tmp, ans=DBL_MAX;
vector<pair<double, int>> v;
int main()
{
cin.tie(NULL)->sync_with_stdio(false);
cin>>n>>k;
for (int i=1; i<=n; i++) cin>>a[i]>>b[i], cnt+=(b[i]!=-1), v.push_back({(b[i]==-1)?1e9:b[i], i});
sort(v.begin(), v.end());
for (int i=0; i<=min(cnt, k); i++)
{
double res=0;
vector<double> t;
for (int j=1; j<=n; j++) if (!c[j]) t.push_back(a[j]);
sort(t.begin(), t.end());
for (int j=0; j+1+i<=k; j++) res+=(((double)t[j])/(i+1));
ans=min(ans, tmp+res);
if (i!=k) tmp+=(v[i].first)/(i+1), c[v[i].second]=1;
}
printf("%.5f", ans);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |