tuki2501

qbticket.cpp

Nov 5th, 2021
705
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. // ----------- define --------------
  5. #define int long long
  6. #define vi vector<int>
  7. #define ii pair<int,int>
  8. #define fi first
  9. #define sc second
  10. #define mp make_pair
  11. #define pb push_back
  12. #define pqueue priority_queue
  13. #define popcnt __builtin_popcount
  14. #define getBit(x, k) ((x >> k) & 1)
  15. #define xorBit(x, k) (x ^ (1 << k))
  16. #define siz(x) (int)((x).size())
  17. #define all(x) (x).begin(),(x).end()
  18. // ---------------------------------
  19.  
  20. void Main() {
  21.   int l1, l2, l3, c1, c2, c3;
  22.   cin >> l1 >> l2 >> l3 >> c1 >> c2 >> c3;
  23.   int n, s, f;
  24.   cin >> n >> s >> f;
  25.   vector<int> a(n + 1);
  26.   for (int i = 2; i <= n; i++) {
  27.     cin >> a[i];
  28.   }
  29.   vector<int> dp(n + 1, 1e15);
  30.   dp[s] = 0;
  31.   int p1 = s, p2 = s, p3 = s;
  32.   for (int i = s + 1; i <= f; i++) {
  33.     while (a[i] - a[p1] > l1) p1++;
  34.     while (a[i] - a[p2] > l2) p2++;
  35.     while (a[i] - a[p3] > l3) p3++;
  36.     int t1 = dp[p1] + c1;
  37.     int t2 = dp[p2] + c2;
  38.     int t3 = dp[p3] + c3;
  39.     dp[i] = min(t1, min(t2, t3));
  40.   }
  41.   cout << dp[f] << '\n';
  42. }
  43.  
  44. signed main() {
  45. #ifdef _DEBUG
  46.   // freopen("in" , "r", stdin );
  47.   cerr << "- ---- -- ----- <3\n";
  48. #endif
  49.   cin.tie(0)->sync_with_stdio(0);
  50.   int T = 1;
  51.   // cin >> T;
  52.   while (T--) Main();
  53. }
Advertisement
Add Comment
Please, Sign In to add comment