Submission #1283997

#TimeUsernameProblemLanguageResultExecution timeMemory
1283997IcelastWorst Reporter 3 (JOI18_worst_reporter3)C++20
100 / 100
207 ms12112 KiB
#include <iostream> #include <bits/stdc++.h> #define ll long long using namespace std; const ll maxn = 2*1e5+5, INF = 4e18+9; struct item{ ll l, r, d; }; void solve(){ int n, q; cin >> n >> q; vector<ll> a(n+1), b(n+1); for(int i = 1; i <= n; i++){ cin >> a[i]; } b[0] = 1; for(int i = 1; i <= n; i++){ ll t = a[i] / b[i-1]; b[i] = t * b[i-1]; if(a[i] % b[i-1] != 0) b[i] += b[i-1]; } for(int i = 1; i <= n; i++){ ll t = a[i] / b[i-1]; b[i] = t * b[i-1]; if(a[i] % b[i-1] != 0) b[i] += b[i-1]; } b.push_back(INF); vector<item> c; int len = 0; for(int i = 0; i <= n; i++){ len++; if(b[i] != b[i+1]){ c.push_back({-i, -i+len-1, b[i]}); len = 0; } } for(int i = 1; i <= q; i++){ ll l, r, t; cin >> t >> l >> r; ll ans = 0; for(auto it : c){ ll delta = t / it.d; delta *= it.d; it.l += delta; it.r += delta; ll U = min(it.r, r) - max(it.l, l) + 1; U = max(U, 0LL); ans += U; } cout << ans << "\n"; } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...