Advertisement
Art_Uspen

Untitled

May 26th, 2021
1,050
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.13 KB | None | 0 0
  1. #include <vector>
  2. #include<iostream>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7.     int64_t N;
  8.     cin >> N;
  9.     vector<int64_t> arr;
  10.     arr.reserve(N);
  11.     vector<int64_t> pref;
  12.     pref.reserve(N);
  13.     int64_t value;
  14.     for (int64_t i = 0; i < N; ++i) {
  15.         cin >> value;
  16.         arr.push_back(value);
  17.         if (i == 0) {
  18.             pref.push_back(value);
  19.         } else {
  20.             pref.push_back(pref[i - 1] + value);
  21.         }
  22.     }
  23.     int64_t Q, X_0;
  24.     cin >> Q >> X_0;
  25.     vector<int64_t> requests;
  26.     requests.reserve(2 * Q);
  27.     requests.push_back(X_0);
  28.     for (int64_t i = 1; i < 2 * Q; ++i) {
  29.         int64_t item = (11173 * requests[i - 1] + 1) % 1000000007;
  30.         requests.push_back(item);
  31.     }
  32.     int64_t L_i, R_i;
  33.     int64_t sum_ = 0;
  34.     for (int64_t i = 0; i < Q; ++i) {
  35.         L_i = min(requests[i * 2] % N, requests[(i * 2) + 1] % N);
  36.         R_i = max(requests[i * 2] % N, requests[(i * 2) + 1] % N);
  37.         if (L_i == 0) {
  38.             sum_ += pref[R_i];
  39.         } else {
  40.             sum_ += pref[R_i] - pref[L_i - 1];
  41.         }
  42.     }
  43.     cout << sum_ % 1000000007<<'\n';
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement