#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll const maxn = 1e5+1;
ll dp[maxn];
int main()
{
int n;
cin>>n;
vector<array<ll,4> > v;
for (int i=0;i<n;i++)
{
ll c,f,p;
cin>>c>>f>>p;
v.push_back({f,c,-p});
}
int m;cin>>m;
for (int i=0;i<m;i++)
{
ll c,f,p;
cin>>c>>f>>p;
v.push_back({f,-c,p});
}
/// f po golemina, prvin kupuvanje, c se dali kupuvam ili prodavam
sort(v.begin(),v.end());
reverse(v.begin(),v.end());
for (int i=0;i<=maxn;i++) dp[i] = -1e15;
dp[0] = 0;
for (auto a: v)
{
ll cores = a[1],price = a[2];
if (cores < 0)
for (ll c = 0;c<=maxn;c++)
{
if (c + cores <= 10 && c+cores >= 0) {
//if (dp[c] > -2000) cout<<"dp["<<c<<"+"<<cores<<"] = "<<"max( "<<dp[c+cores]<<" , "<<dp[c]<<"+"<<price<<" )\n";
dp[c+cores] = max(dp[c+cores],dp[c] + price);
}
}
else
{
for (ll c = maxn;c>=0;c--)
{
if (c + cores <= 10 && c+cores >= 0) {
//if (dp[c] > -2000) cout<<"dp["<<c<<"+"<<cores<<"] = "<<"max( "<<dp[c+cores]<<" , "<<dp[c]<<"+"<<price<<" )\n";
dp[c+cores] = max(dp[c+cores],dp[c] + price);
}
}
}
//cout<<"izlava za "<<price<<"\n";
}
ll odg = 0;
for (int i=0;i<=maxn;i++) odg = max(odg,dp[i]);
cout<<odg<<endl;
return 0;
}
Compilation message (stderr)
clo.cpp: In function 'int main()':
clo.cpp:30:37: warning: iteration 100001 invokes undefined behavior [-Waggressive-loop-optimizations]
30 | for (int i=0;i<=maxn;i++) dp[i] = -1e15;
| ~~~~~~^~~~~~~
clo.cpp:30:19: note: within this loop
30 | for (int i=0;i<=maxn;i++) dp[i] = -1e15;
| ~^~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |