제출 #1326214

#제출 시각아이디문제언어결과실행 시간메모리
1326214bbldrizzyLet's Win the Election (JOI22_ho_t3)C++20
100 / 100
154 ms508 KiB
#include <bits/stdc++.h>
#include <ios>
#include <iostream>
#include <set>
#include <random>
using namespace std;
using ll = double;
using P = pair<double, double>;
#define f first
#define s second
const ll MOD = 1e9+7;
const ll inf = 4*1e18;
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};

long long md(long long a, long long m) {
    return (a % m + m) % m;
}

int main() {
    // freopen("input.in", "r", stdin);
    ios::sync_with_stdio(false); cin.tie(nullptr);
    ll n, k; cin >> n >> k;
    vector<P> v;
    for (int i = 0; i < n; i++) {
        ll x, y; cin >> x >> y;
        v.push_back({((y==-1) ? 1e9 : y), x});
    }
    sort(v.begin(), v.end());
    for (int i = 0; i < n; i++) {
        ll tmp = v[i].f;
        v[i].f = v[i].s;
        v[i].s = tmp;
        if (v[i].s == 1e9) v[i].s = -1; 
    }
    ll M = 1e9;
    for (int i = 0; i <= k; i++) {
        vector<ll> dp1(i+1, 1e9);
        dp1[0] = 0;
        for (int j = 0; j < n; j++) {
            vector<ll> dp2(i+1, 1e9);
            for (int l = 0; l <= i; l++) {
                ll c = k - i;
                if (l < i) {
                    dp2[l+1] = min(dp2[l+1], dp1[l] + v[j].f/(c+1));
                }
                if (j-l < c) {
                    if (v[j].s != -1) {
                        dp2[l] = min(dp2[l], dp1[l] + v[j].s/(j+1-l));
                    }
                } else {
                    dp2[l] = min(dp2[l], dp1[l]);
                }
            }
            dp1.swap(dp2);
        }
        M = min(M, dp1[i]);
    }
    cout << M;
}   
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...