Submission #637817

#TimeUsernameProblemLanguageResultExecution timeMemory
637817ksu2009enAddk (eJOI21_addk)C++17
92 / 100
1509 ms3276 KiB
#include <iostream>
#include <vector>
#include <string>
#include <math.h>
#include <cmath>
#include <iomanip>
#include <cstdio>
#include <algorithm>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <deque>
#include <bitset>
#include <cstring>

using namespace std;
typedef long long ll;


int main(){
    ll n, k;
    cin >> n >> k;
    
    vector<ll>a(n + 1);

    for(int i = 1; i <= n; i++)
        cin >> a[i];
    
    vector<ll>pref(n + 1);
    
    for(int i = 1; i <= n; i++)
        pref[i] = pref[i - 1] + a[i];
    
    ll q;
    cin >> q;
    
    while(q--){
        ll type;
        cin >> type;
        
        if(type == 1){
            ll p;
            for(int i = 0; i < k; i++)
                cin >> p;
        }
        else{
            ll l, r, m;
            cin >> l >> r >> m;
            
            ll cnt = min(m, (r - l + 1) - m + 1);
           // cout << cnt << endl;
            
            ll ans = 0;
            
            while(cnt > 0){
                ans += pref[r] - pref[l - 1];
                l++, r--;
                
                cnt--;
            }
            cout << ans << endl;
        }
    }
    
    return 0;
}
/*
 3 1
 3 4 5
 1 2 90
 
 */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...