Submission #1247448

#TimeUsernameProblemLanguageResultExecution timeMemory
1247448AHOKAWorst Reporter 3 (JOI18_worst_reporter3)C++20
100 / 100
171 ms7372 KiB
#include <bits/stdc++.h> #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") using namespace std; #define threesum cin.tie(NULL); cout.tie(NULL); ios_base::sync_with_stdio(false) #define all(a) a.begin(), a.end() #define F first #define S second #define int long long #define pii pair<int, int> #define ppp pair<int, pii> #define dout cout << fixed << setprecision(15) #define mid ((l + r) >> 1) #define lc (id << 1) #define rc (lc + 1) mt19937 rng(chrono::steady_clock().now().time_since_epoch().count()); const int maxn = 1e6 + 10, maxm = 4e2 + 10, oo = 1e18 + 10, lg = 23, sq = 30, mod = 1e9 + 7; int n, m, d, a[maxn]; struct grp { int l; int r; int a; } g; vector<grp> v; void solve(){ cin >> n >> m; a[0] = 1; g.l = g.r = 0; g.a = 1; v.push_back(g); for (int i = 1; i <= n; i++){ cin >> d; a[i] = a[i - 1] * ((d + a[i - 1] - 1) / a[i - 1]); if(a[i] == a[i - 1]) v.back().r = i; else{ g.l = g.r = i; g.a = min(mod, a[i]); v.push_back(g); } } while(m--){ int ans = 0; int t, ql, qr; cin >> t >> ql >> qr; for(auto g : v){ int cnt = (t / g.a); int d = cnt * g.a; int l = max(ql, -g.r + d); int r = min(qr, -g.l + d); ans += max(0ll, (r - l + 1)); } cout << ans << "\n"; } } signed main() { threesum; 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...