제출 #1353013

#제출 시각아이디문제언어결과실행 시간메모리
1353013nuradilAddk (eJOI21_addk)C++20
36 / 100
2093 ms1696 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 len = r - l + 1;
            ll lm = len - m + 1;
            ll last = l + lm - 1;
            vector<ll> diff(n + 2 , 0);
            for(int j = l; j <= last; j++){
                diff[j]++;
                diff[j + m]--;
            }
            ll sum = 0;
            vector<ll> pref(n + 1 , 0);
            for(int j = l; j <= r; j++){
                pref[j] = pref[j - 1] + diff[j];
                sum += (pref[j] * A[j]);
            }
            cout << sum << '\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...