提交时间:2023-12-02 11:18:11

运行 ID: 113612

#include<iostream> #include<string> using namespace std; const int N = 610, M = 110; int m, t, n, f[M][M], w1, w2; string s; int main(){ cin >> n >> m >> t; for(int i = 1; i <= n; i++){ cin >> s; for(int j = 0; j < s.size(); j++){ if(s[j] == '0'){ w1++; } else if(s[j] == '1'){ w2++; } } } for(int i = 1; i <= n; i++){ for(int j = 100; j >= 0; j--){ for(int k = 100; k >= 0; k--){ if(j >= w1 && k >= w2){ f[j][k] = max(f[j][k], f[j-w2][k-w1] + 1); } } } } cout << f[m][t] + 1 << endl; return 0; }