Submission #1244997

#TimeUsernameProblemLanguageResultExecution timeMemory
1244997JovicaCloud Computing (CEOI18_clo)C++20
0 / 100
50 ms1208 KiB
#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 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...