题目
分析
代码
1 #include <cmath>
2 #include <cstdio>
3 #include <cstring>
4 #include <iostream>
5 #include <algorithm>
6 #define ll long long
7 using namespace std;
8 int a[120][120],f[120][10001],sum1[120][120],sum2[120][120],d[120][120];
9
10 int main()
11 {
12 int n,m;
13 cin>>n>>m;
14 for (int i=1,x;i<=n;i++)
15 {
16 cin>>a[i][0];
17 a[i][110]=a[i-1][110]+a[i][0];
18 for (int j=1;j<=a[i][0];j++)
19 {
20 cin>>a[i][j];
21 sum1[i][j]=sum1[i][j-1]+a[i][j];
22 }
23 for (int j=a[i][0],k=1;j>=1;j--,k++)
24 sum2[i][k]=sum2[i][k-1]+a[i][j];
25 }
26 for (int i=1;i<=n;i++)
27 for (int j=1;j<=min(a[i][0],m);j++)
28 for (int k=0;k<=j;k++)
29 d[i][j]=max(d[i][j],sum1[i][k]+sum2[i][j-k]);
30 for (int i=1;i<=n;i++)
31 for (int j=1;j<=a[i][110];j++)
32 for (int k=0;k<=min(a[i][0],j);k++)
33 f[i][j]=max(f[i][j],f[i-1][j-k]+d[i][k]);
34 cout<<f[n][m];
35 return 0;
36 }