Submission #658852

#TimeUsernameProblemLanguageResultExecution timeMemory
658852EthanKim8683Cloud Computing (CEOI18_clo)C++17
100 / 100
928 ms2148 KiB
#include<bits/stdc++.h>
using namespace std;
using I=int;
using Lli=long long int;
using B=bool;
const I N=2000;
const I M=2000;
const I C=50;
const Lli MIN=-1e18;
vector<tuple<Lli,I,Lli>>trns;
Lli dp[2][N*C+1];
void cmb(Lli&a,Lli b){
  a=max(a,b);
}
I main(){
  cin.tie(0)->sync_with_stdio(0);
  fill(&dp[0][0],&dp[0][0]+2*(N*C+1),MIN);
  I n;cin>>n;
  for(I i=0;i<n;i++){
    I c;Lli f,v;cin>>c>>f>>v;
    trns.push_back({f,c,-v});
  }
  I m;cin>>m;
  for(I i=0;i<m;i++){
    I c;Lli f,v;cin>>c>>f>>v;
    trns.push_back({f,-c,v});
  }
  sort(trns.begin(),trns.end());
  reverse(trns.begin(),trns.end());
  Lli res=MIN;
  dp[0][0]=0;
  for(I i=0;i<trns.size();i++){
    auto[f,c,v]=trns[i];
    for(I j=0;j<=n*C;j++){
      if(j+c>=0)cmb(dp[(i+1)%2][j+c],dp[i%2][j]+v);
      cmb(dp[(i+1)%2][j],dp[i%2][j]);
      cmb(res,dp[i%2][j]);
    }
    for(I j=0;j<=n*C;j++)dp[i%2][j]=MIN;
  }
  for(I i=0;i<=n*C;i++)cmb(res,dp[trns.size()%2][i]);
  printf("%lli\n",res);
}

Compilation message (stderr)

clo.cpp: In function 'I main()':
clo.cpp:32:14: warning: comparison of integer expressions of different signedness: 'I' {aka 'int'} and 'std::vector<std::tuple<long long int, int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |   for(I i=0;i<trns.size();i++){
      |             ~^~~~~~~~~~~~
#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...