# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
526598 | hmm789 | Let's Win the Election (JOI22_ho_t3) | C++14 | 706 ms | 984680 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n, k;
cin >> n >> k;
pair<int, int> a[n];
for(int i = 0; i < n; i++) {
cin >> a[i].second >> a[i].first;
if(a[i].first == -1) a[i].first = 1e9;
}
sort(a, a+n);
double dp[n+1][k+1][k+1];
for(int i = 0; i <= n; i++) {
for(int j = 0; j <= k; j++) {
for(int m = 0; m <= k; m++) {
if(m == 0 && i == 0 && j == 0) dp[i][j][m] = 0;
else if(i == 0 || i < m || i < j || m < j) dp[i][j][m] = 1e9;
else if(m == 0) dp[i][j][m] = 0;
else if(j == 0) dp[i][j][m] = min(dp[i-1][j][m-1] + a[i-1].second*1.0/(j+1), dp[i-1][j][m]);
else dp[i][j][m] = min(dp[i-1][j][m-1] + a[i-1].second*1.0/(j+1), min(dp[i-1][j-1][m-1] + a[i-1].first*1.0/j, dp[i-1][j][m]));
}
}
}
double res = 1e9;
for(int i = 0; i <= k; i++) res = min(res, dp[n][i][k]);
cout << fixed << setprecision(5) << res;
}
# | 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... |