Submission #1336931

#TimeUsernameProblemLanguageResultExecution timeMemory
1336931Nipphitch만두 (JOI14_ho_t2)C++20
0 / 100
2 ms836 KiB
#include <bits/stdc++.h>
using namespace std;
const int N=2e4+5;
const int M=505;
const int NN=5e6+5;

int n,m,c[M],e[M],p[N],dp1[N],dp2[M][N],ans;

signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m;
    for(int i=1;i<=n;i++) cin >> p[i];
    sort(p+1,p+1+n,greater <int>());
    for(int i=1;i<=NN;i++) dp1[i]=dp1[i-1]+p[i];
    for(int i=0;i<=m;i++) for(int j=1;j<=NN;j++) dp2[i][j]=INT_MAX/2;
    for(int i=1;i<=m;i++){
        cin >> c[i] >> e[i];
        for(int j=NN;j>=1;j--){
            dp2[i][j]=dp2[i-1][j];
            if(j-c[i]<0) continue;
            dp2[i][j]=min(dp2[i][j],dp2[i-1][j-c[i]]+e[i]);
        }
    }
    for(int i=1;i<=NN;i++) ans=max(ans,dp1[i]-dp2[m][i]);
    //for(int i=0;i<=n*2;i++) cout << dp2[m][i] << " ";
    cout << ans;
}

Compilation message (stderr)

2014_ho_t2.cpp: In function 'int main()':
2014_ho_t2.cpp:16:42: warning: iteration 20005 invokes undefined behavior [-Waggressive-loop-optimizations]
   16 |     for(int i=1;i<=NN;i++) dp1[i]=dp1[i-1]+p[i];
      |                                   ~~~~~~~^
2014_ho_t2.cpp:16:18: note: within this loop
   16 |     for(int i=1;i<=NN;i++) dp1[i]=dp1[i-1]+p[i];
      |                 ~^~~~
2014_ho_t2.cpp:26:45: warning: iteration 20004 invokes undefined behavior [-Waggressive-loop-optimizations]
   26 |     for(int i=1;i<=NN;i++) ans=max(ans,dp1[i]-dp2[m][i]);
      |                                        ~~~~~^
2014_ho_t2.cpp:26:18: note: within this loop
   26 |     for(int i=1;i<=NN;i++) ans=max(ans,dp1[i]-dp2[m][i]);
      |                 ~^~~~
2014_ho_t2.cpp:17:59: warning: iteration 20004 invokes undefined behavior [-Waggressive-loop-optimizations]
   17 |     for(int i=0;i<=m;i++) for(int j=1;j<=NN;j++) dp2[i][j]=INT_MAX/2;
      |                                                  ~~~~~~~~~^~~~~~~~~~
2014_ho_t2.cpp:17:40: note: within this loop
   17 |     for(int i=0;i<=m;i++) for(int j=1;j<=NN;j++) dp2[i][j]=INT_MAX/2;
      |                                       ~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...