Submission #1309640

#TimeUsernameProblemLanguageResultExecution timeMemory
1309640empyr1nAddk (eJOI21_addk)C++20
36 / 100
2095 ms2912 KiB
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")

#include <bits/stdc++.h>

#define ll long long
#define pb push_back
#define el '\n'

using namespace std;

int main () {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    ll n, k; cin >> n >> k;
    vector <ll> a(n + 1);
    for (ll i = 1; i <= n; i++)
        cin >> a[i];

    ll q; cin >> q;

    while (q--) {
        int type; cin >> type;

        if (type == 2) {
            ll l, r, m; cin >> l >> r >> m;

            ll ans = 0;
            for (ll i = l; i <= r; i++) {
                ll ql = max(l, i - m + 1);
                ll qr = min(i, r - m + 1);
                ans += a[i] * max(0ll, qr - ql + 1ll);
            }

            cout << ans << el;
        } else {
            vector <ll> b(k + 1);
            for (ll i = 1; i <= k; i++)
                cin >> b[i];
            ll x = a[b[1]];
            for (ll i = 1; i < k; i++)
                a[b[i]] = a[b[i + 1]];

            a[b[k]] = x;
        }
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...