제출 #1176289

#제출 시각아이디문제언어결과실행 시간메모리
1176289avighnaTwo Dishes (JOI19_dishes)C++20
3 / 100
1446 ms9792 KiB
#include <bits/stdc++.h>

typedef long long ll;

int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(nullptr);

  int n, m;
  std::cin >> n >> m;
  std::vector<ll> a(n), s(n), p(n);
  for (int i = 0; i < n; ++i) {
    std::cin >> a[i] >> s[i] >> p[i];
  }
  std::vector<ll> b(m), t(m), q(m);
  for (int i = 0; i < m; ++i) {
    std::cin >> b[i] >> t[i] >> q[i];
  }

  ll ans = 0;
  for (int mask = 0; mask < (1 << (n + m)); ++mask) {
    ll cur_ans = 0;
    bool good = true;
    ll time = 0;
    int idx1 = 0, idx2 = 0;
    for (int i = 0; i < n + m; ++i) {
      if (mask & (1 << i)) {
        if (idx1 >= n) {
          good = false;
          break;
        }
        time += a[idx1];
        if (time <= s[idx1]) {
          cur_ans += p[idx1];
        }
        idx1++;
      } else {
        if (idx2 >= m) {
          good = false;
          break;
        }
        time += b[idx2];
        if (time <= t[idx2]) {
          cur_ans += q[idx2];
        }
        idx2++;
      }
    }
    if (good) {
      ans = std::max(ans, cur_ans);
    }
  }
  std::cout << ans << '\n';
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...