Submission #989001

#TimeUsernameProblemLanguageResultExecution timeMemory
989001parlimoosCloud Computing (CEOI18_clo)C++14
18 / 100
71 ms157792 KiB
//Be Name KHODA #pragma GCC optimize("Ofast") #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define pb push_back #define pp pop_back #define lb lower_bound #define ub upper_bound #define arr(x) array<ll , x> #define endl '\n' #define cl clear #define bg begin int n , m , sum; vector<arr(3)> a , b , ord; ll dp[2000][10000] , o , ps[10000]; ll getPs(int l , int r){ ll res = ps[r]; if(l > 0) res -= ps[l - 1]; return res; } ll f(int i , int j){ ll res = 0; if(dp[i][j] != -1) return dp[i][j]; if(i >= m or j >= sum) return 0; res = max(f(i + 1 , j) , f(i , ord[j][2])); if(j + a[i][0] <= sum and ord[j][0] >= a[i][1]){ res = max(res , a[i][2] - getPs(j , j + a[i][0] - 1) + f(i + 1 , j + a[i][0])); } return (dp[i][j] = res); } int main(){ ios::sync_with_stdio(0); cin.tie(0); cin >> n; for(int i = 0 ; i < n ; i++){ int c , f , v; cin >> c >> f >> v; b.pb({c , f , v}) , sum += c; } cin >> m; for(int i = 0 ; i < m ; i++){ int c , f , v; cin >> c >> f >> v; a.pb({c , f , v}); } fill(&dp[0][0] , &dp[1999][10000] , -1); sort(a.bg() , a.end() , [](arr(3) a , arr(3) b){ return (a[1] < b[1]); }); sort(b.bg() , b.end() , [](arr(3) a , arr(3) b){ return (a[1] < b[1]); }); for(auto el : b){ int inx = (int)ord.size() + el[0]; ord.pb({el[1] , el[2] , inx}); for(int i = 0 ; i < el[0] - 1 ; i++) ord.pb({el[1] , 0 , inx}); } for(int i = 0 ; i < sum ; i++){ ps[i] = ord[i][1]; if(i > 0) ps[i] += ps[i - 1]; } cout << f(0 , 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...