Submission #729577

#TimeUsernameProblemLanguageResultExecution timeMemory
729577dozerCloud Computing (CEOI18_clo)C++14
100 / 100
1962 ms3688 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define sp " " #define endl "\n" #define fastio() cin.tie(0), ios_base::sync_with_stdio(0) #define pii pair<int, int> #define st first #define nd second #define pb push_back #define N 2005 #define L(node) node * 2 #define R(node) node * 2 + 1 #define int long long #define M 51 int dp[2][N][M][2]; array<int, 3> cust[N], comp[N]; const int INF = 2e18 + 7; int32_t main() { fastio(); int n; cin>>n; for (int i = 1; i <= n; i++) cin>>comp[i][1]>>comp[i][0]>>comp[i][2]; int m; cin>>m; for (int i = 1; i <= m; i++) cin>>cust[i][1]>>cust[i][0]>>cust[i][2]; sort(comp + 1, comp + 1 + n); sort(cust + 1, cust + 1 + m); for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int l = 1; l >= 0; l--) { for (int k = 0; k < M; k++) { int t1 = -INF, t2 = -INF, t3 = -INF, t4 = -INF; t1 = dp[1][j - 1][k][l]; t3 = dp[0][j][k][0]; if (l == 0 && k + comp[i][1] >= cust[j][1] && k + comp[i][1] - cust[j][1] < M && comp[i][0] >= cust[j][0]) t2 = dp[1][j - 1][k + comp[i][1] - cust[j][1]][1] - comp[i][2] + cust[j][2]; if (l == 0 && k + comp[i][1] < M) t2 = max(t2, dp[1][j][k + comp[i][1]][1] - comp[i][2]); if (k >= cust[j][1] && comp[i][0] >= cust[j][0]) t4 = dp[1][j - 1][k - cust[j][1]][l] + cust[j][2]; int ans = max(t1, t2); ans = max(ans, t3); ans = max(ans, t4); dp[1][j][k][l] = ans; } } } for (int j = 1; j <= m; j++) { for (int l = 1; l >=0; l--) { for (int k = 0; k < M; k++) dp[0][j][k][l] = dp[1][j][k][l]; } } } cout<<dp[0][m][0][0]<<endl; cerr<<"time taken : "<<(float)clock() / CLOCKS_PER_SEC<<" seconds\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...