Advertisement
JouJoy

H

Dec 10th, 2021
1,186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. #include<vector>
  4. using namespace std;
  5. #define ll long long
  6. #define ld long double
  7. int main()
  8. {
  9.     ll t = 1;
  10.     //cin >> t;
  11.     while (t--)
  12.     {
  13.         ll n, m, o;
  14.         cin >> n >> m >> o;
  15.         vector<ll> a;
  16.         a.resize(n);
  17.         for (int i = 0; i < n; i++)
  18.             cin >> a[i];
  19.         vector< pair<pair<ll, ll>, ll>> p;
  20.         p.resize(m);
  21.         for (int i = 0; i < m; i++)
  22.             cin >> p[i].first.first >> p[i].first.second >> p[i].second;
  23.         vector<pair<ll, ll>> y;
  24.         y.resize(o);
  25.         for (int i = 0; i < o; i++)
  26.             cin >> y[i].first >> y[i].second;
  27.         vector<ll> r;
  28.         r.resize(m);
  29.         r[0] = 0;
  30.         for (int i = 0; i < o; i++)
  31.         {
  32.             r[y[i].first - 1]++;
  33.             if (y[i].second != m)
  34.                 r[y[i].second]--;
  35.         }
  36.         for (int i = 1; i < m; i++)
  37.             r[i] += r[i - 1];
  38.         for (int i = 0; i < m; i++)
  39.             p[i].second *= r[i];
  40.         vector<ll> w = { 0 };
  41.         w.resize(n);
  42.         for (int i = 0; i < m; i++)
  43.         {
  44.             w[p[i].first.first - 1] += p[i].second;
  45.             if (p[i].first.second != n)
  46.                 w[p[i].first.second] -= p[i].second;
  47.         }
  48.         for (int i = 1; i < n; i++)
  49.             w[i] += w[i - 1];
  50.         for (int i = 0; i < n; i++)
  51.             cout << a[i] + w[i] << " ";
  52.         cout << endl;
  53.     }
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement