제출 #1170575

#제출 시각아이디문제언어결과실행 시간메모리
1170575zrzzrzFeast (NOI19_feast)C++20
71 / 100
33 ms63304 KiB
#include <bits/stdc++.h> using namespace std; int n,k,a[300005],x; long long f[2005][2005][2],g[300005][2][2],L; int main(){ scanf("%d%d",&n,&k); long long sum=0; for (int i=1;i<=n;i++){ scanf("%d",&a[i]); if (a[i]<0) x=i,L=sum; sum+=a[i]; } if (n<=2000&&k<=2000){ memset(f,0x80,sizeof f); f[0][0][0]=0; for (int i=1;i<=n;i++) for (int j=0;j<=k;j++){ f[i][j][0]=max(f[i-1][j][0],f[i-1][j][1]); f[i][j][1]=max(f[i-1][j][1],j?f[i-1][j-1][0]:(long long)-1e18)+a[i]; } long long ans=0; for (int i=0;i<=k;i++) ans=max({ans,f[n][i][0],f[n][i][1]}); printf("%lld\n",ans); } else if (k==1){ memset(g,0x80,sizeof g); g[0][0][0]=0; for (int i=1;i<=n;i++) for (int j=0;j<=k;j++){ g[i][j][0]=max(g[i-1][j][0],g[i-1][j][1]); g[i][j][1]=max(g[i-1][j][1],j?g[i-1][j-1][0]:(long long)-1e18)+a[i]; } long long ans=0; for (int i=0;i<=k;i++) ans=max({ans,g[n][i][0],g[n][i][1]}); printf("%lld\n",ans); } else{ if (!x) printf("%lld\n",sum); else{ if (k==1) printf("%lld\n",max({sum,L,sum-L-a[x]})); else printf("%lld\n",sum-a[x]); } } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

feast.cpp: In function 'int main()':
feast.cpp:6:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    6 |         scanf("%d%d",&n,&k);
      |         ~~~~~^~~~~~~~~~~~~~
feast.cpp:9:22: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    9 |                 scanf("%d",&a[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...
#Verdict Execution timeMemoryGrader output
Fetching results...