Submission #499918

#TimeUsernameProblemLanguageResultExecution timeMemory
499918f4t4ntCloud Computing (CEOI18_clo)C++11
100 / 100
1472 ms2116 KiB
#include <algorithm> #include <cmath> #include <ctime> #include <deque> #include <fstream> #include <functional> #include <iostream> #include <iomanip> #include <iterator> #include <list> #include <map> #include <math.h> #include <numeric> #include <queue> #include <random> #include <set> #include <sstream> #include <stack> #include <stdio.h> #include <string> #include <tuple> #include <unordered_set> #include <utility> #include <vector> #define ll long long #define pll pair<ll, ll> #define vi vector<int> #define vvi vector<vi> #define vl vector<ll> #define vvl vector<vl> #define vvvl vector<vvl> #define vvvvl vector<vvvl> #define vpll vector<pll> #define vvpll vector<vpll> #define plvl pair<ll, vl> #define vplvl vector<plvl> #define sl set<ll> #define spll set<pll> #define vsl vector<sl> #define ssl set<sl> #define plsl pair<ll, sl> #define vplsl vector<plsl> #define msl multiset<ll> #define mspll multiset<pll> #define vb vector<bool> #define vvb vector<vb> #define mll map<ll, ll> #define mlll map<ll, mll> #define mlvl map<ll, vl> #define mlpll map<ll, pll> #define mlvpll map<ll, vpll> #define mlsl map<ll, sl> #define mpllb map<pll, bool> #define vmll vector<mll> #define ql queue<ll> #define qpll queue<pll> #define fl long double #define vf vector<fl> #define vvf vector<vf> #define str string #define vstr vector<str> #define mstrl map<str, ll> #define mcl map<char, ll> #define pb push_back #define elif else if #define sz(C) (ll) C.size() #define flip(C) reverse(C.begin(), C.end()) #define ssort(C) sort(C.begin(), C.end()) #define rsort(C) sort(C.begin(), C.end(), greater<>()) #define max_elem(C) *max_element(C.begin(), C.end()) #define min_elem(C) *min_element(C.begin(), C.end()) #define contains(C, x) find(C.begin(), C.end(), x) != C.end() #define FOR(x, e) for(ll x = 0; x < (ll) e; x++) #define FORR(x, e) for(ll x = (ll) e - 1; x >= 0; x--) #define FOB(x, b, e) for(auto x = (ll) b; x != (ll) e; x++) #define FOE(x, e, b) for(auto x = (ll) e - 1; x != (ll) b; x--) #define FOI(x, e, i) for(ll x = 0; x < (ll) e; x += (ll) i) #define FOBI(x, b, e, i) for(ll x = (ll) b; x < (ll) e; x += (ll) i) #define FORE(x, C) for(auto& x : C) using namespace std; struct Transaction { ll c; ll f; ll p; }; int main() { ll N, M; vector<Transaction> ref; cin >> N; FOR(n, N) { Transaction t; cin >> t.c >> t.f >> t.p; t.p *= -1; ref.pb(t); } cin >> M; FOR(m, M) { Transaction t; cin >> t.c >> t.f >> t.p; t.c *= -1; ref.pb(t); } sort(ref.begin(), ref.end(), [] (const Transaction &a, const Transaction &b) -> bool { return a.f != b.f ? a.f > b.f : a.p < b.p; }); vl dp0(1e5 + 1, -1e18); dp0[0] = 0; FORE(t, ref) { vl dp1 = dp0; FOR(i, 1e5 + 1) { if(i + t.c >= 0) { dp1[i + t.c] = max(dp1[i + t.c], dp0[i] + t.p); } } swap(dp0, dp1); } cout << max_elem(dp0) << '\n'; }
#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...