Submission #761657

#TimeUsernameProblemLanguageResultExecution timeMemory
761657vgoofficialCloud Computing (CEOI18_clo)C++14
72 / 100
591 ms1880 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
struct Order {
    ll numCores, clockRate, money;
};
int main() {
    ios_base::sync_with_stdio(false); 
    cin.tie(0);
    int total=0;
    int n,m;
    cin >> n;
    vector<Order> shops;
    for(int i = 0; i < n; i++) {
        Order temp;
        cin >> temp.numCores >> temp.clockRate >> temp.money;
        temp.money=-temp.money;
        shops.push_back(temp);
        total+=temp.numCores;
    }
    cin >> m;
    for(int i = 0; i < m; i++) {
        Order temp;
        cin >> temp.numCores >> temp.clockRate >> temp.money;
        temp.numCores=-temp.numCores;
        shops.push_back(temp);
    }
    sort(shops.begin(), shops.end(), [](const Order &a, const Order &b) -> bool{
        return a.clockRate>b.clockRate;
    });
    ll maxProfit[total+1];
    for(int j = 0; j <= total; j++) {
        maxProfit[j]=-1e14;
    }
    maxProfit[0]=0;
    for(int i = 0; i < shops.size(); i++) {
        ll tempMaxProfit[total+1];
        for(int j = 0; j <= total; j++) {
            tempMaxProfit[j]=maxProfit[j];
        }
        for(int j = 0; j <= total; j++) {
            int prev = j - shops[i].numCores;
            if(prev>=0&&prev<=total) {
                tempMaxProfit[j]=max(tempMaxProfit[j], maxProfit[prev]+shops[i].money);
            }
        }
        for(int j = 0; j <= total; j++) {
            maxProfit[j]=tempMaxProfit[j];
        }
    }
    ll ans = 0;
    for(int i = 0; i <= total; i++) {
        ans=max(ans, maxProfit[i]);
    }
    cout << ans << endl;
}
/*
3
4 2200 700
2 1800 10
4 2000 750
3
1 1500 300
6 1900 1500
3 2400 4550
*/

Compilation message (stderr)

clo.cpp: In function 'int main()':
clo.cpp:36:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<Order>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |     for(int i = 0; i < shops.size(); i++) {
      |                    ~~^~~~~~~~~~~~~~
#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...