1 #include<iostream>
2 #include<algorithm>
3 using namespace std;
4
5 int n, m, k;
6 int s1[101], s2[101], f[101][101][11];
7
8 int main()
9 {
10 cin >> n >> m >> k;
11 if (m == 1)
12 {
13 for (int i = 1; i <= n; i++)
14 {
15 int t;
16 cin >> t;
17 s1[i] = s1[i - 1] + t;
18 }
19 for (int h = 1; h <= k; h++)
20 {
21 for (int i = 1; i <= n; i++)
22 {
23 f[0][i][h] = f[0][i - 1][h];
24 for (int j = 0; j < i; j++)
25 f[0][i][h] = max(f[0][i][h], f[0][j][h - 1] + s1[i] - s1[j]);
26 }
27 }
28 cout << f[0][n][k];
29 return 0;
30 }
31 for (int i = 1; i <= n; i++)
32 {
33 int t;
34 cin >> t;
35 s1[i] = s1[i - 1] + t;
36 cin >> t;
37 s2[i] = s2[i - 1] + t;
38 }
39 for (int h = 1; h <= k; h++)
40 {
41 for (int i = 1; i <= n; i++)
42 {
43 for (int j = 1; j <= n; j++)
44 {
45 f[i][j][h] = max(f[i - 1][j][h], f[i][j - 1][h]);
46 for (int x = 0; x < i; x++) f[i][j][h] = max(f[i][j][h], f[x][j][h - 1] + s1[i] - s1[x]);
47 for (int x = 0; x < j; x++) f[i][j][h] = max(f[i][j][h], f[i][x][h - 1] + s2[j] - s2[x]);
48 if (i == j) for (int x = 0; x < i; x++) f[i][j][h] = max(f[i][j][h], f[x][x][h - 1] + s1[i] - s1[x] + s2[j] - s2[x]);
49 }
50 }
51 }
52 cout << f[n][n][k];
53 return 0;
54 }