# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
774909 | 2023-07-06T05:26:30 Z | SteGG | Worst Reporter 3 (JOI18_worst_reporter3) | C++17 | 21 ms | 2260 KB |
#include <bits/stdc++.h> #define int long long using namespace std; const int maxn = 1e5 + 5; int n, q; int f[maxn]; int d[maxn]; void open(){ if(fopen("input.inp", "r")){ freopen("input.inp", "r", stdin); } } signed main(){ open(); cin >> n >> q; for(int i = 1; i <= n; i++){ cin >> d[i]; } f[0] = 1; for(int i = 1; i <= n; i++){ f[i] = ceil((double)(d[i]) / (double)(f[i - 1])) * f[i - 1]; } auto get = [&](int pos, int t){ return t / f[pos] * f[pos] - pos; }; auto bin_sex = [&](int limit, int t){ int s = 0, e = n; int ans = -1; while(s <= e){ int mid = (s + e) >> 1; int pos = get(mid, t); // cout << t << " " << mid << " " << pos << endl; if(pos >= limit){ s = mid + 1; ans = mid; }else{ e = mid - 1; } } return ans + 1; }; while(q--){ int t, l, r; cin >> t >> l >> r; if(t <= l){ cout << (t == l) << endl; }else{ cout << bin_sex(l, t) - bin_sex(r + 1, t) << endl; } } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 21 ms | 2260 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 320 KB | Output is correct |
2 | Correct | 2 ms | 340 KB | Output is correct |
3 | Correct | 2 ms | 340 KB | Output is correct |
4 | Correct | 2 ms | 320 KB | Output is correct |
5 | Correct | 3 ms | 324 KB | Output is correct |
6 | Correct | 3 ms | 316 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 21 ms | 2260 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |