Submission #1261352

#TimeUsernameProblemLanguageResultExecution timeMemory
1261352hgiaCloud Computing (CEOI18_clo)C++20
100 / 100
173 ms2128 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+5;
int n,m,tmp;
int dp[N+5];
array<int,(int)4>a[4005];
bool cmp(array<int,4>a,array<int,4>b)
{
  if(a[1]==b[1])return a[3]<b[3];
  return a[1]>b[1];
}
main()
{
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin>>n;
  for(int i=1;i<=n;i++)
  {
    for(int j=0;j<3;j++)cin>>a[i][j];
    a[i][(int)3]=i;
  }
  cin>>m;
  for(int i=n+1;i<=n+m;i++)
  {
    for(int j=0;j<3;j++)cin>>a[i][j];
    a[i][(int)3]=i;
  }
  n+=m;
  sort(a+1,a+n+1,cmp);
  memset(dp, -0x3f, sizeof dp);
  dp[0]=0;
  for(int i=1;i<=n;i++)
  {
    if(a[i][3]<=n-m)
    {
      for(int j=tmp;j>=0;j--)
        dp[j+a[i][0]]=max(dp[j+a[i][0]],dp[j]-a[i][2]);
      tmp+=a[i][0];
    }
    else
    {
      for(int j=a[i][0];j<=tmp;j++)dp[j-a[i][0]]=max(dp[j-a[i][0]],dp[j]+a[i][2]);
    }
  }
  cout<<*max_element(dp,dp+N);
  return 0;
}

Compilation message (stderr)

clo.cpp:13:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   13 | main()
      | ^~~~
#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...