Time Limits: 5000 ms Memory Limits: 65536 KB Detailed Limits
1 #include<bits/stdc++.h>
2 using namespace std;
3 inline int read()
4 {
5 int x=0;char ch=getchar();
6 while(ch<'0'||ch>'9')ch=getchar();
7 while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
8 return x;
9 }
10 int n,m,t,ans;
11 int sum[55];
12 int f[55][55],dp[55][2505];
13 char s[60];
14 int main()
15 {
16 n=read();
17 m=read();
18 t=read();
19 for(int i=1;i<=n;i++)
20 {
21 scanf("%s",s+1);
22 for(int j=1;j<=m;j++)
23 sum[j]=sum[j-1]+(s[j]=='1');
24 for(int j=1;j<=m;j++)
25 for(int x=1;x<=m;x++)
26 {
27 f[x][j]=0;
28 for(int y=0;y<x;y++)
29 {
30 int tmp=sum[x]-sum[y];
31 f[x][j]=max(f[x][j],f[y][j-1]+max(tmp,x-y-tmp));
32 }
33 }
34 for(int j=1;j<=t;j++)
35 {
36 int tmp=min(m,j);
37 for(int k=1;k<=tmp;k++)
38 dp[i][j]=max(dp[i][j],dp[i-1][j-k]+f[m][k]);
39 }
40 }
41 for(int i=1;i<=t;i++)
42 ans=max(dp[n][i],ans);
43 printf("%d",ans);
44 return 0;
45 }