diff --git a/RQNOJ/17.cpp b/RQNOJ/17.cpp new file mode 100644 index 0000000..b6d55fc --- /dev/null +++ b/RQNOJ/17.cpp @@ -0,0 +1,41 @@ +#include +#include +#include +using namespace std; + +int s, t, m, tot = 0, ans = 0; +long long l; +int vis[11000] = {0}; +int sto[110] = {0}; +int f[11000] = {0}; + +int main () +{ + //freopen ("in.txt", "r", stdin); + cin >> l >> s >> t >> m; + for (int i = 0; i < m; i++) cin >> sto[i]; + sort (sto, sto + m); + if (s == t) { + for (int i = 0; i < m; i++) { + if (!(sto[i]%s)) ans++; + } + cout << ans; + return 0; + } + int e; + if (sto[0] > 100) vis[tot = 100] = 1; + else vis[tot = sto[0]] = 1; + for (int i = 1; i < m; i++) { + if ((e = sto[i] - sto[i-1]) > 100) { vis[tot += 100] = 1;} + else { vis[tot += e] = 1;} + } + + for (int i = tot; i >= 0; i--) { + f[i] = 200; + for (int j = s; j <= t; j++) { + f[i] = min (f[i], f[i+j] + vis[i]); + } + } + cout << f[0]; + return 0; + }