Submission #1148632

#TimeUsernameProblemLanguageResultExecution timeMemory
1148632yeysoFish 3 (JOI24_fish3)C++20
0 / 100
356 ms9196 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
    int n, d; cin >> n >> d;
    vector<int> c(n, 0);
    for(int i = 0; i < n; i ++){
        cin >> c[i];
    }
    int q; cin >> q;
    vector<int> prefix(n+1, 0);
    vector<int> bad(n+1, 0);
    for(int i = 0; i < n; i ++){
        prefix[i+1] = prefix[i] + c[i];
        bad[i+1] = bad[i];
        if(i > 0 && c[i] == 0 && c[i-1] == 1){
            bad[i+1] += 1;
        }
    }
    /*for(int i = 1; i < n + 1; i ++){
        cout << bad[i] << " ";
    } cout << "\n";*/
    for(int i = 0; i < q; i ++){
        //vector<int> cc = c;
        int res = 0;
        int l, r; cin >> l >> r;
        l -= 1;
        r -= 1;
        if(d != 1){
            if(bad[r + 1] != bad[l + 1]){
                res = -1;
            } 
        } else {
            res = prefix[r + 1] - prefix[l + 1];
        }
        //cout << " - ";
        cout << res << "\n";
        /*for(int i = r - 1; i >= l; i --){
            if(cc[i] > cc[i+1]){
                res += ceil((double)(cc[i] - cc[i+1]) / d);
                cc[i] -= ceil((double)(cc[i] - cc[i+1]) / d) * d;
            }
        }
        for(int i = l; i <= r; i ++){
            if(cc[i] < 0) res = -1;
        }
        //cout << " - " << res << "\n";
        cout << res << "\n";*/
    }
}
/*
g++ -std=gnu++17 -O2 -pipe -o fish fish.cpp

7 1
0 0 1 0 1 1 0
4
1 2
2 4
2 3
4 6

*/
#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...