Submission #25313748


Source Code Expand

#include <bits/stdc++.h>
#include <cassert>
typedef long long int ll;
using namespace std;
// #include <atcoder/all>
// using namespace atcoder;

// @@ !! LIM()

int main(/* int argc, char *argv[] */) {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout << setprecision(20);

  ll N, M; cin >> N >> M;
  vector<ll> A(N), B(M), C(M);
  for (ll i = 0; i < N; i++) cin >> A[i];
  sort(A.begin(), A.end());
  for (ll i = 0; i < M; i++) cin >> B[i];
  for (ll i = 0; i < M; i++) cin >> C[i];
  vector<pair<ll, ll>> BC;
  for (ll i = 0; i < M; i++) BC.emplace_back(B[i], C[i]);
  sort(BC.begin(), BC.end(),
       [&](const auto& x, const auto& y) -> bool {
         const auto& [xb, xc] = x;
         const auto& [yb, yc] = y;
         return (double)xc * yb > (double)yc * xb;
       });
  vector<ll> accB(M + 1), accC(M + 1);
  for (ll i = 0; i < M; i++) accB[i + 1] = accB[i] + BC[i].first;
  for (ll i = M - 1; i >= 0; i--) accC[i] = accC[i + 1] + BC[i].second;
  
  ll sumA = 0;
  for (ll i = 0; i < N; i++) sumA += A[i];
  ll vmin = sumA;
  ll p = M;
  for (ll t = 1; t <= N; t++) {
    sumA -= A[N - t];
    for (; p > 0; p--) {
      const auto& [b, c] = BC[p-1];
      if (t * b < c) break;
    }
    ll thisv = sumA + t * accB[p] + accC[p];
    vmin = min(vmin, thisv);
  }
  cout << vmin << endl;

  return 0;
}

Submission Info

Submission Time
Task E - Snack
User yamate11
Language C++ (GCC 9.2.1)
Score 800
Code Size 1331 Byte
Status AC
Exec Time 103 ms
Memory 14180 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 800 / 800
Status
AC × 2
AC × 27
Set Name Test Cases
Sample 00-sample-001.txt, 00-sample-002.txt
All 00-sample-001.txt, 00-sample-002.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt
Case Name Status Exec Time Memory
00-sample-001.txt AC 8 ms 3536 KiB
00-sample-002.txt AC 2 ms 3436 KiB
01-001.txt AC 3 ms 3472 KiB
01-002.txt AC 3 ms 3484 KiB
01-003.txt AC 2 ms 3628 KiB
01-004.txt AC 2 ms 3560 KiB
01-005.txt AC 1 ms 3552 KiB
01-006.txt AC 48 ms 10144 KiB
01-007.txt AC 41 ms 7992 KiB
01-008.txt AC 81 ms 12596 KiB
01-009.txt AC 49 ms 6580 KiB
01-010.txt AC 71 ms 14044 KiB
01-011.txt AC 89 ms 14124 KiB
01-012.txt AC 93 ms 14112 KiB
01-013.txt AC 102 ms 14124 KiB
01-014.txt AC 103 ms 14128 KiB
01-015.txt AC 94 ms 14176 KiB
01-016.txt AC 96 ms 14084 KiB
01-017.txt AC 98 ms 14060 KiB
01-018.txt AC 99 ms 14172 KiB
01-019.txt AC 101 ms 14076 KiB
01-020.txt AC 100 ms 14072 KiB
01-021.txt AC 100 ms 14016 KiB
01-022.txt AC 100 ms 14072 KiB
01-023.txt AC 101 ms 14180 KiB
01-024.txt AC 101 ms 13988 KiB
01-025.txt AC 96 ms 14112 KiB