Submission #941184

# Submission time Handle Problem Language Result Execution time Memory
941184 2024-03-08T09:04:07 Z peterandvoi Let's Win the Election (JOI22_ho_t3) C++17
5 / 100
121 ms 2444 KB
#include <bits/stdc++.h>

using namespace std;

#ifdef ngu
#include "debug.h"
#else
#define debug(...) 42
#endif

const int N = 505;

int n, k;
double dp[N][N];
pair<int, int> a[N];

double get(int mid) {
    for (int i = 0; i <= n; ++i) {
        for (int j = 0; j <= k - mid; ++j) {
            dp[i][j] = 1e9;
        }
    }
    dp[0][0] = 0;
    for (int i = 1; i <= n; ++i) {
        for (int j = 0; j <= min(i, k - mid); ++j) {
            int x = i - j - 1;
            if (j > 0) {
                dp[i][j] = min(dp[i][j], dp[i - 1][j - 1] + 1.0 * a[i].first / (mid + 1));
            }
            dp[i][j] = min(dp[i][j], dp[i - 1][j] + (x < mid ? 1.0 * a[i].second / (x + 1) : 0));
        }
    }
    return dp[n][k - mid];
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    #ifdef ngu
    freopen("test.inp", "r", stdin);
    freopen("test.out", "w", stdout);
    #endif
    cout << fixed << setprecision(1);
    cin >> n >> k;
    for (int i = 1; i <= n; ++i) {
        cin >> a[i].first >> a[i].second;
        a[i].second = a[i].second == -1 ? 1001 : a[i].second;
    }
    sort(a + 1, a + n + 1, [&](auto x, auto y) {
        return x.second < y.second;
    });
    int l = 1, r = n;
    double res = 1e9;
    for (int i = 1; i <= n; ++i) {
        r -= a[i].second == 1001;
    }
    r = min(r, k);
    for (int i = 0; i <= r; ++i) {
        res = min(res, get(i));
    }
    cout << res;
//    while (l <= r) {
//        int mid = l + r >> 1;
//        if (get(mid - 1) >= get(mid)) {
//            res = mid;
//            l = mid + 1;
//        } else {
//            r = mid - 1;
//        }
//    }
//    cout << get(res);
}

Compilation message

Main.cpp: In function 'int main()':
Main.cpp:52:9: warning: unused variable 'l' [-Wunused-variable]
   52 |     int l = 1, r = n;
      |         ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 2396 KB Output is correct
9 Correct 1 ms 2396 KB Output is correct
10 Correct 1 ms 2444 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 2396 KB Output is correct
9 Correct 1 ms 2396 KB Output is correct
10 Correct 1 ms 2444 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Incorrect 13 ms 2396 KB Output isn't correct
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Incorrect 0 ms 348 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Incorrect 0 ms 348 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Incorrect 0 ms 348 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 121 ms 2396 KB Output is correct
2 Incorrect 121 ms 2424 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 2396 KB Output is correct
6 Correct 1 ms 2396 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 2396 KB Output is correct
9 Correct 1 ms 2396 KB Output is correct
10 Correct 1 ms 2444 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Incorrect 13 ms 2396 KB Output isn't correct
13 Halted 0 ms 0 KB -