Submission #62077703
Source Code Expand
Copy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
/*
~~ Alguma parte/frase foda de um livro/mangá para dar sorte ~~
Uma vez eu gritei, gradualmente, perdi minha voz.
Uma vez eu chorei, gradualmente, perdi minhas lágrimas.
Uma vez eu sofri, gradualmente, me tornei capaz de suportar tudo.
Uma vez me alegrei, gradualmente, me tornei indiferente ao mundo.
E agora, tudo o que me resta é um rosto sem expressão,
meu olhar é tão firme quanto um monólito,
apenas a perseverança permanece no meu coração.
Este sou eu, um personagem insignificante,
Fang Yuan — A Perseverança.
*/
#if defined(LOCAL) or not defined(LUOGU)
#pragma GCC optimize(3)
#pragma GCC optimize("Ofast,unroll-loops")
#endif
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define IOS \
ios_base::sync_with_stdio(false); \
cin.tie(0)
#define pb push_back
#define all(v) v.begin(), v.end()
#define f first
#define s second
#define Unique(v) \
sort(all(v)); \
v.erase(unique(all(v)), v.end()); \
v.shrink_to_fit()
#define sz(v) ((int)v.size())
#define sor(x) sort(all(x))
#define ft front()
#define bk back()
#define endl "\n"
#define rep(i, a, b) for (int i = a; i < (b); ++i)
#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define LB(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define UB(c, x) distance((c).begin(), upper_bound(all(c), (x)))
typedef vector<double> vd;
typedef vector<vd> vvd;
typedef vector<vvd> vvvd;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<vvi> vvvi;
typedef long long ll;
typedef double db;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<int, pii> piii;
typedef vector<pii> vii;
typedef vector<piii> viii;
typedef tuple<int, int, int> tiii;
const int MAXN = 2e5 + 5;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3fll;
const int mod = 1e9 + 7;
void dbg_out() { cerr << endl; }
template <typename Head, typename... Tail>
void dbg_out(Head H, Tail... T)
{
cerr << ' ' << H;
dbg_out(T...);
}
#define dbg(...) cerr << "(" << _VA_ARGS_ << "):", dbg_out(_VA_ARGS_), cerr << endl
void solve()
{
int n, x;
cin >> n >> x;
vector<int> v(n), a(n), c(n);
rep(i, 0, n) cin >> v[i] >> a[i] >> c[i];
vii t1, t2, t3;
rep(i, 0, n)
{
if (v[i] == 1)
t1.pb({c[i], a[i]});
if (v[i] == 2)
t2.pb({c[i], a[i]});
if (v[i] == 3)
t3.pb({c[i], a[i]});
}
auto cmp = [&](vii &v)
{
vi dp(x + 1, 0);
dp[0] = 0;
for (auto &[c, a] : v)
{
for (int j = x; j >= c; j--)
{
dp[j] = max(dp[j], dp[j - c] + a);
}
}
return dp;
};
vi dp1 = cmp(t1), dp2 = cmp(t2), dp3 = cmp(t3);
auto min_cust = [&](const vi &dp, int req)
{
long long ans = LINF;
rep (c, 0, x+1)
{
if (dp[c] >= req)
ans = min(ans, (ll)c);
}
return ans;
};
int lo = 0LL, hi = min({dp1[x], dp2[x], dp3[x]}), ans = 0LL;
while (lo <= hi)
{
int mid = (lo + hi) / 2;
int c1 = sz(t1) ? min_cust(dp1, mid) : (mid == 0LL ? 0LL : INF);
int c2 = sz(t2) ? min_cust(dp2, mid) : (mid == 0LL ? 0LL : INF);
int c3 = sz(t3) ? min_cust(dp3, mid) : (mid == 0LL ? 0LL : INF);
if (c1 != INF && c2 != INF && c3 != INF && (c1 + c2 + c3) <= x)
{
ans = mid;
lo = mid + 1;
}
else
{
hi = mid - 1;
}
}
cout << ans << endl;
}
int32_t main()
{
IOS;
int tt;
tt = 1;
while (tt--)
solve();
return 0;
}
Submission Info
Submission Time |
|
Task |
E - Vitamin Balance |
User |
Marcux777 |
Language |
C++ 23 (gcc 12.2) |
Score |
450 |
Code Size |
3853 Byte |
Status |
AC |
Exec Time |
9 ms |
Memory |
3776 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
450 / 450 |
Status |
|
|
Set Name |
Test Cases |
Sample |
example_00.txt, example_01.txt |
All |
example_00.txt, example_01.txt, hand_00.txt, hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, hand_06.txt, hand_07.txt, hand_08.txt, hand_09.txt, hand_10.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, random_33.txt, random_34.txt, random_35.txt, random_36.txt, random_37.txt, random_38.txt, random_39.txt, random_40.txt, random_41.txt, random_42.txt, random_43.txt, random_44.txt |
Case Name |
Status |
Exec Time |
Memory |
example_00.txt |
AC |
1 ms |
3452 KB |
example_01.txt |
AC |
1 ms |
3636 KB |
hand_00.txt |
AC |
1 ms |
3396 KB |
hand_01.txt |
AC |
6 ms |
3768 KB |
hand_02.txt |
AC |
1 ms |
3564 KB |
hand_03.txt |
AC |
6 ms |
3728 KB |
hand_04.txt |
AC |
1 ms |
3556 KB |
hand_05.txt |
AC |
1 ms |
3428 KB |
hand_06.txt |
AC |
9 ms |
3712 KB |
hand_07.txt |
AC |
2 ms |
3776 KB |
hand_08.txt |
AC |
1 ms |
3504 KB |
hand_09.txt |
AC |
1 ms |
3400 KB |
hand_10.txt |
AC |
9 ms |
3568 KB |
random_00.txt |
AC |
2 ms |
3636 KB |
random_01.txt |
AC |
2 ms |
3648 KB |
random_02.txt |
AC |
1 ms |
3648 KB |
random_03.txt |
AC |
1 ms |
3568 KB |
random_04.txt |
AC |
2 ms |
3500 KB |
random_05.txt |
AC |
1 ms |
3548 KB |
random_06.txt |
AC |
2 ms |
3448 KB |
random_07.txt |
AC |
2 ms |
3600 KB |
random_08.txt |
AC |
1 ms |
3500 KB |
random_09.txt |
AC |
2 ms |
3512 KB |
random_10.txt |
AC |
2 ms |
3576 KB |
random_11.txt |
AC |
2 ms |
3632 KB |
random_12.txt |
AC |
4 ms |
3604 KB |
random_13.txt |
AC |
4 ms |
3620 KB |
random_14.txt |
AC |
4 ms |
3644 KB |
random_15.txt |
AC |
2 ms |
3728 KB |
random_16.txt |
AC |
1 ms |
3592 KB |
random_17.txt |
AC |
1 ms |
3588 KB |
random_18.txt |
AC |
1 ms |
3628 KB |
random_19.txt |
AC |
1 ms |
3528 KB |
random_20.txt |
AC |
2 ms |
3592 KB |
random_21.txt |
AC |
2 ms |
3596 KB |
random_22.txt |
AC |
2 ms |
3504 KB |
random_23.txt |
AC |
2 ms |
3564 KB |
random_24.txt |
AC |
2 ms |
3644 KB |
random_25.txt |
AC |
2 ms |
3548 KB |
random_26.txt |
AC |
3 ms |
3572 KB |
random_27.txt |
AC |
5 ms |
3720 KB |
random_28.txt |
AC |
6 ms |
3644 KB |
random_29.txt |
AC |
3 ms |
3548 KB |
random_30.txt |
AC |
1 ms |
3724 KB |
random_31.txt |
AC |
1 ms |
3540 KB |
random_32.txt |
AC |
2 ms |
3592 KB |
random_33.txt |
AC |
1 ms |
3592 KB |
random_34.txt |
AC |
1 ms |
3360 KB |
random_35.txt |
AC |
1 ms |
3520 KB |
random_36.txt |
AC |
1 ms |
3500 KB |
random_37.txt |
AC |
2 ms |
3580 KB |
random_38.txt |
AC |
2 ms |
3592 KB |
random_39.txt |
AC |
1 ms |
3512 KB |
random_40.txt |
AC |
2 ms |
3664 KB |
random_41.txt |
AC |
2 ms |
3468 KB |
random_42.txt |
AC |
6 ms |
3612 KB |
random_43.txt |
AC |
8 ms |
3692 KB |
random_44.txt |
AC |
2 ms |
3660 KB |