Submission #232809

#TimeUsernameProblemLanguageResultExecution timeMemory
232809nicolaalexandraCloud Computing (CEOI18_clo)C++14
100 / 100
508 ms1408 KiB
#include <bits/stdc++.h> #define DIM 100010 #define INF 2000000000000000000LL using namespace std; struct event{ int c,f,v,tip; }; vector <event> events; long long dp[DIM]; int n,m,c,f,v,i,sum; inline int cmp (event a, event b){ if (a.f == b.f) return a.tip < b.tip; return a.f > b.f; } int main (){ //ifstream cin ("date.in"); //ofstream cout ("date.out"); cin>>n; for (i=1;i<=n;i++){ cin>>c>>f>>v; events.push_back({c,f,v,0}); sum += c; } cin>>m; for (i=1;i<=m;i++){ cin>>c>>f>>v; events.push_back({c,f,v,1}); } for (i=1;i<=sum;i++) dp[i] = -INF; sort (events.begin(),events.end(),cmp); for (auto it : events){ int c = it.c, cost = it.v; if (it.tip){ /// proiect for (i=c;i<=sum;i++){ if (dp[i] != -INF) dp[i-c] = max (dp[i-c], dp[i] + cost); } } else { /// calculator for (i=sum;i>=0;i--){ if (dp[i] != -INF) dp[i+c] = max (dp[i+c], dp[i] - cost); }}} long long sol = 0; for (i=0;i<=sum;i++) sol = max (sol,dp[i]); cout<<sol; return 0; }
#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...