Submission #1144194

#TimeUsernameProblemLanguageResultExecution timeMemory
11441940pt1mus23Sum Zero (RMI20_sumzero)C++20
0 / 100
2 ms1344 KiB
#pragma GCC optimize("ily despite the warnings")
#pragma GCC optimize("O1")
// #pragma GCC optimize("O3,unroll-loops")
// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define ins insert
#define pb  push_back
#define pii pair<int,int>
#define endl '\n' 
#define all(x) x.begin(),x.end()

const int mod = 998244353;
const int inf = INT_MAX;
const int LG  = 18;
const int sze = 4e5+23;
int dp[LG][sze];
void fast(){
    int n;
    cin>>n;
    vector<int> arr(n);
    for(int i=0;i<n;i++){
        cin>>arr[i];
    }
    map<int,int> lan;
    lan[0]=n;
    int sum=0;
    for(int i =0;i<=n;i++){
        for(int j=0;j<LG;j++){
            dp[j][i]=n;
        }
    }
    for(int i=n-1;i>=0;i--){
        sum+=arr[i];
        if(lan.count(sum)){
            dp[0][i] = lan[sum];
        }
        else{
            dp[0][i]=dp[0][i+1];
        }
        lan[sum]=i;
    }
    for(int i = 1;i<LG;i++){
        for(int j=0;j<n;j++){
            dp[i][j]=dp[i-1][dp[i-1][j]];
        }
    }
    int q;
    cin>>q;
    while(q--){
        int l,r;
        cin>>l>>r;
        --l;--r;
        int ans=0;
        for(int i = LG-1;i>=0;i--){
            if(dp[i][l]<=r){
                l = dp[i][l];
                // cout<<i<<" "<<l<<endl;
                ans|=(1<<i);
            }
        }
        // cout<<ans<<" "<<dp[0][l]<<endl;
        ans+=( dp[0][l] <=r+1);
        cout<<ans<<endl;
    }
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int tt =1;

    // cin>>tt;
    while(tt--){
        fast();
    }

    return 0;
}

/*

*/

Compilation message (stderr)

sumzero.cpp:1:48: warning: bad option '-fily despite the warnings' to pragma 'optimize' [-Wpragmas]
    1 | #pragma GCC optimize("ily despite the warnings")
      |                                                ^
sumzero.cpp:19:11: warning: bad option '-fily despite the warnings' to attribute 'optimize' [-Wattributes]
   19 | void fast(){
      |           ^
sumzero.cpp:69:13: warning: bad option '-fily despite the warnings' to attribute 'optimize' [-Wattributes]
   69 | signed main(){
      |             ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...