fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <ctime>
  5. #define ll long long
  6. using namespace std;
  7. ll MOD = 1000000007;
  8. const int MX = 1e5+10;
  9. int dp[501][2*MX+10];
  10.  
  11. int main() {
  12. ios_base::sync_with_stdio(0); cin.tie(0);
  13. int n; cin >> n;
  14. //int start_s=clock();
  15. //for (int i = 0; i < 2*MX+10; i++) dp[0][i] = dp[1][i] = 0;
  16. dp[0][MX] = 1;
  17. for (int i = 1; i <= n; i++) {
  18. int a; cin >> a;
  19. //int id = i+1;
  20. //for (int j = -MX+1; j < MX; j++) dp[id][j+MX] = 0;
  21. for (int j = 0; j < 2*MX; j++) {
  22. if (j+a<2*MX) dp[i][j] += dp[i-1][j+a];
  23. if (j-a>0) dp[i][j] += dp[i-1][j-a];
  24. dp[i][j] %= MOD;
  25. }
  26. }
  27. ll l, r; cin >> l >> r;
  28. ll ans = 0;
  29. int id = n;
  30. for (int i = l+MX; i <= r+MX; i++) {
  31. ans = (ans+dp[id][i])%MOD;
  32. }
  33. //ans%=MOD;
  34. cout << ans << '\n';
  35. //int stop_s=clock();
  36. //cout << "time: " << (stop_s-start_s)/double(CLOCKS_PER_SEC)*1000 << endl;
  37. return 0;
  38. }
Runtime error #stdin #stdout 0.81s 394944KB
stdin
Standard input is empty
stdout
Standard output is empty