Submission #1353009

#TimeUsernameProblemLanguageResultExecution timeMemory
1353009nuradilAddk (eJOI21_addk)C++20
36 / 100
2094 ms1520 KiB
#include <bits/stdc++.h>
using ll = long long;
#define BOOST cin.tie(0) -> sync_with_stdio(0)
#define pb push_back
#define sz size()
#define left(v) (v<<1)
#define right(v) (v<<1|1)
#define ft first
#define sd second
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define pll pair<ll, ll>
#define cntnu continue
#define cf cout.flush()
#pragma comment(linker, "/stack:200000000")
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }
ll lcm(ll a, ll b) { return a / gcd(a, b) * b; }
const ll N = 3e5;
const ll INF = 1e18;
const ll MOD = 1e9 + 7;
const int LG = 22;
using namespace std;
ll bPow(ll a, ll ti, ll mo) {
	ll res = 1;
	while (ti) {
		if (ti & 1) res *= a;
		a *= a;
		ti >>= 1;
		a %= mo;
		res %= mo;
	}
	return res;
}
void solve(){
    ll n , k;
    cin >> n >> k;
    vector<ll> A(n + 1);
    for(int i = 1; i <= n; i++){
        cin >> A[i];
    }
    ll Q;
    cin >> Q;
    for(int i = 1; i <= Q; i++){
        ll T;
        cin >> T;
        if(T == 1){
            ll j;
            cin >> j;
        }
        else {
            ll l , r , m;
            cin >> l >> r >> m;
            ll sum = 0 , L = l;
            ll cost = 0;
            for(int R = l; R <= r; R++){
                sum += A[R];
                while(R - L + 1 > m){
                    sum -= A[L];
                    L++;
                }
                if(R - L + 1 == m){
                    cost += sum;
                }
            }
            cout << cost << '\n';
        }
    }
}
signed main(){
    BOOST;
    // int tt;
    // cin >> tt;
    // while(tt--)
    solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...