제출 #1060102

#제출 시각아이디문제언어결과실행 시간메모리
1060102MalixCloud Computing (CEOI18_clo)C++14
100 / 100
599 ms2140 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; typedef vector<vi> vii; typedef pair<int,int> pi; typedef vector<pi> pii; typedef tuple<int,int,int> tii; typedef vector<ll> li; typedef vector<li> lii; #define REP(i,a,b) for(int i=a;i<b;i++) #define F first #define S second #define PB push_back #define MP make_pair #define LSOne(s) ((s)&(-s)) ll INF=1e18+10; int inf=1e9+10; ll M=1e9+7; int n,m; int mx=1e5+10; int main() { cin>>n; vector<tii> arr; REP(i,0,n){ int x,y,z;cin>>x>>y>>z; arr.PB({y,x,-z}); } cin>>m; REP(i,0,m){ int x,y,z;cin>>x>>y>>z; arr.PB({y,-x,z}); } sort(arr.begin(),arr.end()); reverse(arr.begin(),arr.end()); vector<ll> dp(mx,-INF); dp[0]=0; REP(i,0,n+m){ vector<ll> t(mx); REP(j,0,mx){ t[j]=dp[j]; if(j-get<1>(arr[i])<0||j-get<1>(arr[i])>=mx)continue; if(dp[j-get<1>(arr[i])]==-INF)continue; t[j]=max(t[j],dp[j-get<1>(arr[i])]+get<2>(arr[i])); } dp=t; } cout<<*max_element(dp.begin(),dp.end()); }
#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...