Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<vector>
- using namespace std;
- #define ll long long
- #define ld long double
- int main()
- {
- ll t = 1;
- //cin >> t;
- while (t--)
- {
- ll n, m, o;
- cin >> n >> m >> o;
- vector<ll> a;
- a.resize(n);
- for (int i = 0; i < n; i++)
- cin >> a[i];
- vector< pair<pair<ll, ll>, ll>> p;
- p.resize(m);
- for (int i = 0; i < m; i++)
- cin >> p[i].first.first >> p[i].first.second >> p[i].second;
- vector<pair<ll, ll>> y;
- y.resize(o);
- for (int i = 0; i < o; i++)
- cin >> y[i].first >> y[i].second;
- vector<ll> r;
- r.resize(m);
- r[0] = 0;
- for (int i = 0; i < o; i++)
- {
- r[y[i].first - 1]++;
- if (y[i].second != m)
- r[y[i].second]--;
- }
- for (int i = 1; i < m; i++)
- r[i] += r[i - 1];
- for (int i = 0; i < m; i++)
- p[i].second *= r[i];
- vector<ll> w = { 0 };
- w.resize(n);
- for (int i = 0; i < m; i++)
- {
- w[p[i].first.first - 1] += p[i].second;
- if (p[i].first.second != n)
- w[p[i].first.second] -= p[i].second;
- }
- for (int i = 1; i < n; i++)
- w[i] += w[i - 1];
- for (int i = 0; i < n; i++)
- cout << a[i] + w[i] << " ";
- cout << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement