Submission #1280679

#TimeUsernameProblemLanguageResultExecution timeMemory
1280679baktrrAddk (eJOI21_addk)C++20
92 / 100
1088 ms4564 KiB
/**
  III     U   U  N   N  DDDD   EEEEE  RRRR   SSSS  TTTTT  AAAAA  N   N  DDDD      I  TTTTT     N   N   OOO   W   W
   I      U   U  NN  N  D   D  E      R   R  S       T    A   A  NN  N  D   D     I    T       NN  N  O   O  W   W
   I      U   U  N N N  D   D  EEEE   RRRR   SSSS    T    AAAAA  N N N  D   D     I    T       N N N  O   O  W W W
   I      U   U  N  NN  D   D  E      R  R      S    T    A   A  N  NN  D   D     I    T       N  NN  O   O  WW WW
  III     UUUUU  N   N  DDDD   EEEEE  R   R  SSSS    T    A   A  N   N  DDDD      I    T       N   N   OOO   W   W
**/

//18.09.25
#include <bits/stdc++.h>

#pragma optimize("g", on)
#pragma GCC optimize ("inline")
#pragma GCC optimize ("Ofast")
#pragma GCC optimize ("unroll-loops")
#pragma GCC optimize ("03")
#pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,avx2,mmx,fma,avx,tune=native")

// #include <ext/pb_ds/assoc_container.hpp>
// #include <ext/pb_ds/tree_policy.hpp>
using namespace std;
// using namespace __gnu_pbds;


#define ent '\n'
#define F first
#define S second
#define in insert
#define no "NO\n"
#define yes "YES\n"
#define pb push_back
#define sz(w) w.size()
#define int long long
#define pii pair <int, int>
#define all(w) w.begin(), w.end()
#define rall(w) w.rbegin(), w.rend()
#define BakTR ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
 
const int MOD = 998244353, N = 2e5 + 7 , inf = 1e9 + 7, INF = 2e18, LOG = 18 , mod = 1e9 + 7 ;
 
// template <typename T>
// using ordered_set = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>;
// mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

void accepted() {
    int n , k ;
    cin >> n >> k ;
    int p[n + 2] = {} , a[n + 1] ;
    for(int i = 1 ; i <= n ; i++) {
        cin >> a[i] ;
        p[i] = p[ i- 1] + a[i] ;
    }    
    int q; 
    cin >> q ;
    while(q -- ) {
        int t ;
        cin >> t ;
        if(t == 2) {
            int l , r , m ;
            cin >> l >> r >> m ;
            int ans = 0 ;
            for(int i = l ; i + m - 1 <= r ; i++) {
                ans += p[i + m - 1] - p[i - 1] ;
            }
            cout << ans << ent ;
        }
        else {
            int x ;
            cin >> x ;
        }
    }
}

signed main() {
    BakTR
 
    //PLS NeverGiveUp
 
    // freopen("diamond.in", "r", stdin) ;
    // freopen("diamond.out", "w", stdout) ;
 
    int T = 1 ;
    // cin >> T ;
    while (T--) {
        accepted();
        cout << ent;
    }
}
/**
baktr

**/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...