Submission #60908410
Source Code Expand
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+5;
const ll inf=1e18;
int n,k;
ll a[N],pre[N];
vector<vector<vector<ll>>>solve(int l,int r){
int sum=(r-l)/k+1;
vector<vector<vector<ll>>>f(k,vector<vector<ll>>(k,vector<ll>(sum+1,-inf)));
if(l==r){
for(int i=0;i<k;i++){
for(int j=0;j<k;j++){
f[i][j][0]=0;
if(k==1){
f[i][j][1]=a[l];
}
}
}
return f;
}
int mid=(l+r)/2;
vector<vector<vector<ll>>>fl=solve(l,mid),fr=solve(mid+1,r);
int suml=(mid-l)/k+1,sumr=(r-mid-1)/k+1;
for(int i=0;i<k;i++){
for(int j=0;j<k;j++){
int p=0,q=0;
while(p<=suml&&q<=sumr){
f[i][j][p+q]=max(f[i][j][p+q],fl[i][0][p]+fr[0][j][q]);
if(p==suml&&q==sumr){
break;
}
if(q==sumr||(p!=suml&&fl[i][0][p+1]-fl[i][0][p]>=fr[0][j][q+1]-fr[0][j][q])){
++p;
}else{
++q;
}
}
for(int x=1;x<k;x++){
if(i+x>mid-l+1){
continue;
}
if(j+k-x>r-mid){
continue;
}
int p=0,q=0;
while(p<=suml&&q<=sumr){
if(p+q+1<=sum){
f[i][j][p+q+1]=max(f[i][j][p+q+1],fl[i][x][p]+fr[k-x][j][q]+(pre[mid+k-x]-pre[mid-x]));
}
if(p==suml&&q==sumr){
break;
}
if(q==sumr||(p!=suml&&fl[i][x][p+1]-fl[i][x][p]>=fr[k-x][j][q+1]-fr[k-x][j][q])){
++p;
}else{
++q;
}
}
}
}
}
return f;
}
ll ans[N];
int main(){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
for(int i=1;i<=n;i++){
pre[i]=pre[i-1]+a[i];
}
vector<vector<vector<ll>>>f=solve(1,n);
memset(ans,-0x3f,sizeof ans);
for(int i=0;i<k;i++){
for(int j=0;j<k;j++){
for(int p=1;p<=n/k;p++){
ans[p]=max(ans[p],f[i][j][p]);
}
}
}
for(int i=1;i<=n/k;i++){
printf("%lld ",ans[i]);
}
printf("\n");
return 0;
}
Submission Info
Submission Time |
|
Task |
G - Bar Cover |
User |
AutumnMoon |
Language |
C++ 17 (gcc 12.2) |
Score |
625 |
Code Size |
2531 Byte |
Status |
AC |
Exec Time |
722 ms |
Memory |
31632 KiB |
Compile Error
Main.cpp: In function ‘int main()’:
Main.cpp:67:10: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
67 | scanf("%d%d",&n,&k);
| ~~~~~^~~~~~~~~~~~~~
Main.cpp:69:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
69 | scanf("%lld",&a[i]);
| ~~~~~^~~~~~~~~~~~~~
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
625 / 625 |
Status |
|
|
Set Name |
Test Cases |
Sample |
00_sample_01.txt, 00_sample_02.txt |
All |
00_sample_01.txt, 00_sample_02.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt |
Case Name |
Status |
Exec Time |
Memory |
00_sample_01.txt |
AC |
6 ms |
5216 KiB |
00_sample_02.txt |
AC |
2 ms |
5272 KiB |
01_test_01.txt |
AC |
189 ms |
15940 KiB |
01_test_02.txt |
AC |
322 ms |
20616 KiB |
01_test_03.txt |
AC |
493 ms |
26764 KiB |
01_test_04.txt |
AC |
722 ms |
31632 KiB |
01_test_05.txt |
AC |
189 ms |
16000 KiB |
01_test_06.txt |
AC |
321 ms |
20604 KiB |
01_test_07.txt |
AC |
498 ms |
26748 KiB |
01_test_08.txt |
AC |
719 ms |
31592 KiB |
01_test_09.txt |
AC |
189 ms |
15960 KiB |
01_test_10.txt |
AC |
320 ms |
20616 KiB |
01_test_11.txt |
AC |
489 ms |
26788 KiB |
01_test_12.txt |
AC |
720 ms |
31588 KiB |
01_test_13.txt |
AC |
189 ms |
15940 KiB |
01_test_14.txt |
AC |
322 ms |
20644 KiB |
01_test_15.txt |
AC |
492 ms |
26756 KiB |
01_test_16.txt |
AC |
83 ms |
13656 KiB |
01_test_17.txt |
AC |
161 ms |
15992 KiB |
01_test_18.txt |
AC |
286 ms |
20612 KiB |
01_test_19.txt |
AC |
453 ms |
26768 KiB |
01_test_20.txt |
AC |
674 ms |
31572 KiB |
01_test_21.txt |
AC |
83 ms |
13836 KiB |
01_test_22.txt |
AC |
160 ms |
15988 KiB |
01_test_23.txt |
AC |
286 ms |
20612 KiB |
01_test_24.txt |
AC |
457 ms |
26760 KiB |
01_test_25.txt |
AC |
678 ms |
31564 KiB |
01_test_26.txt |
AC |
194 ms |
13760 KiB |
01_test_27.txt |
AC |
456 ms |
22124 KiB |
01_test_28.txt |
AC |
77 ms |
8428 KiB |
01_test_29.txt |
AC |
188 ms |
13644 KiB |
01_test_30.txt |
AC |
360 ms |
18620 KiB |
01_test_31.txt |
AC |
2 ms |
5380 KiB |
01_test_32.txt |
AC |
1 ms |
5376 KiB |
01_test_33.txt |
AC |
2 ms |
5220 KiB |
01_test_34.txt |
AC |
2 ms |
5268 KiB |