Submission #1319799

#TimeUsernameProblemLanguageResultExecution timeMemory
1319799sonarchtSum Zero (RMI20_sumzero)C++20
0 / 100
7 ms1336 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned long long #define ld long double #define pb push_back #define all(v) begin(v), end(v) #define pll pair<ll, ll> #define fi first #define se second #define vll vector<ll> #define mll map<ll, ll> mt19937_64 rng(chrono::high_resolution_clock().now().time_since_epoch().count()); const ll N = 4e5 + 6, inf = 1e18 + 7, mod = 1e9 + 7; ll n, m, k, q, ans, a[N], pf[N], li[N][21]; mll mp; void solve() { cin >> n; for (int i = 1; i <= n; ++i) cin >> a[i]; pf[0] = 0, mp[0] = inf; for (int i = 1; i <= n; ++i) pf[i] = pf[i-1] + a[i], mp[pf[i]] = inf; li[n][0] = n+1; mp[pf[n-1]] = n; for (int i = n-1; i >= 1; --i) { li[i][0] = min(mp[pf[i-1]], li[i+1][0]); mp[pf[i-1]] = i; } //for (int i = 1; i <= n; ++i) cout << li[i][0] << " "; cout << endl; for (int j = 1; j <= 20; ++j) { for (int i = 1; i <= n; ++i) { li[i][j] = li[li[i][j-1]][j-1]; } } //cout << li[1][2] << endl; cin >> q; while (q--) { ll l, r; cin >> l >> r; ll u = l, ans = 0; for (int j = 20; j >= 0; --j) { if (li[u][j] && li[u][j] <= r+1) { ans += (1 << j); u = li[u][j]; //cout << j << endl; } } cout << ans << endl; } return; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); if (fopen(".INP", "r")) { freopen(".INP", "r", stdin); freopen(".OUT", "w", stdout); } ll tc = 1; // cin >> tc; while (tc--) { solve(); } return 0; }

Compilation message (stderr)

sumzero.cpp: In function 'int main()':
sumzero.cpp:58:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   58 |                 freopen(".INP", "r", stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~
sumzero.cpp:59:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   59 |                 freopen(".OUT", "w", stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...