제출 #1304099

#제출 시각아이디문제언어결과실행 시간메모리
1304099exoworldgdCloud Computing (CEOI18_clo)C++20
100 / 100
455 ms2096 KiB
#pragma GCC optimize("O5,unroll-loops,inline,fast-math") #pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt") #include <bits/stdc++.h> #define exoworldgd cin.tie(0)->sync_with_stdio(0), cout.tie(0) #define int long long using namespace std; const int N=100005,inf=1e18; int n,m,ans=0,dp[2][N],p=0,c=1; tuple<int,int,int> t[4005]; signed main(void) { exoworldgd; cin >> n; for (int i=0,u,v,w; i<n; i++) cin >> u >> v >> w,t[i]={v,u,-w}; cin >> m; for (int i=0,u,v,w; i<m; i++) cin >> u >> v >> w,t[n+i]={v,-u,w}; sort(t,t+n+m,greater<tuple<int,int,int>>()); for (int i=0; i<N; i++) dp[0][i]=dp[1][i]=-inf; dp[0][0]=0; for (int i=0; i<n+m; i++) { auto [f,a,v]=t[i]; for (int j=0; j<N; j++) dp[c][j]=max(dp[c][j],dp[p][j]); for (int j=0; j<N; j++) { if (j+a>=N || j<-a) continue; dp[c][j+a]=max({dp[c][j+a],dp[p][j]+v,dp[p][j+a]}); } swap(p,c); for (int j=0; j<N; j++) dp[c][j]=-inf; } for (int i=0; i<N; i++) ans=max(ans,dp[p][i]); cout << ans; }
#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...