Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
36147 | hshh | 【S】T1 | C++ | 输出超限 | 0 | 64 MS | 1820 KB | 846 | 2025-02-07 19:47:29 |
#include <bits/stdc++.h> using namespace std; #define ll long long const int N = 2e5+10; ll n,q1,a[N]; ll l,r,q,x,s,t,l1,r1,l2,r2; void check(ll x){ for (int i = 1; i <= q1; i++){ if (q==1) x=t * (x +s); else x = (x - s) /t; } } int main(){ cin >> n >> q1 >> l >> r; for (int i = 1; i <= n; i++){ cin>>a[i]; } for (int i = 1; i <=q1; i++){ cin>>q>>x>>s>>t; check(i); cout<<a[i]; } int res1 = 0, res2 = 0; while (l1 <= r1){ int mid=(l1+r1)/2; if (a[mid]>= l){ res1 = mid; r1 = mid - 1; } else l1 = mid + 1; } while (l2<=r2){ int mid = (l2+r2)/2; if (a[mid] <= r){ res2 = mid; l2 = mid + 1; } else r2 = mid - 1; } int cnt = 0; for (int i = 1; i <= n; i++) if (res1 <= a[i] && a[i] <= res2) cnt++; cout << cnt << endl; return 0; }