#include <bits/stdc++.h>
using namespace std;
const int MAX_L = 1000;
int main() {
int l, s, t, m;
cin >> l >> s >> t >> m;
vector<int> stones(m);
for (int i = 0; i < m; ++i) {
cin >> stones[i];
}
sort(stones.begin(), stones.end());
if (s == t) {
int count = 0;
for (int i = 0; i < m; ++i) {
if (stones[i] % s == 0) {
++count;
}
}
cout << count << endl;
return 0;
}
vector<int> dp(l+t+1,MAX_L);
dp[0] = 0;
vector<int> mark(l+t+1,0);
for (int i = 0; i < m; ++i) {
mark[stones[i]] = 1;
}
for (int i = 0; i <= l; ++i) {
if (dp[i] == MAX_L) continue;
for (int j = s; j <= t; ++j) {
int next = i + j;
dp[next] = min(dp[next], dp[i] + mark[next]);
}
}
int result = MAX_L;
for (int i = l; i <= l + t; ++i) {
result = min(result, dp[i]);
}
cout << result << endl;
return 0;
}
改了一天了,大佬都说救不回来了,有没有大佬帮我改改?可给予关注。