Submission #1326705

#TimeUsernameProblemLanguageResultExecution timeMemory
1326705ivan_alexeevFire (JOI20_ho_t5)C++20
1 / 100
1096 ms14488 KiB
#include <bits/stdc++.h>

using namespace std;

#ifndef lisie_bimbi
#define endl '\n'
#pragma GCC optimize("O3")
#pragma GCC target("avx,avx2,bmi2,fma")
#endif

using ll = long long;
const ll inf = 1'000'000'000'000'000'000;

const int N = 200'010;

#define int long long

struct query{
    int l;
    int r;
    int ind;
};


void solve(){
    int n, q;
    cin >> n >> q;
    vector<ll> a(n);
    for(int i = 0; i < n; i++){
        cin >> a[i];
    }
    vector<vector<query>> qq(n + 1);
    for(int i = 0; i < q; i++){
        int l, r, t;
        cin >> t >> l >> r;
        l--;
        qq[t].push_back({l, r, i});
    }
    vector<ll> ans(q);
    for(int i = 0; i <= n; i++){
        for(auto [l, r, ind] : qq[i]){
            int aa = 0;
            for(int i = l; i < r; i++){
                aa += a[i];
            }
            ans[ind] = aa;
        }
        for(int i = n - 1; i > 0; i--){
            a[i] = max(a[i], a[i - 1]);
        }
    }
    for(auto i : ans){
        cout << i << endl;
    }
    cout << endl;
}

signed main(){
#ifdef lisie_bimbi
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#else
#endif
    cin.tie(nullptr)->sync_with_stdio(false);
    int t = 1;
    //cin >> t;
    while(t--){
        solve();
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...