提交时间:2025-02-07 14:55:27
运行 ID: 36048
#include <bits/stdc++.h> using namespace std; long long n,Q,L,R,a[214514],x[214514],q[214514],s[214514],t[214514],b[214514]; long long check(long long w) { if(b[w]) { return a[w]; } for(long long i=1;i<=Q;i++) { if(q[i]==1) { if(a[w]>=x[i]) { a[w]+=s[i],a[w]*=t[i]; } } else{ if(a[w]<=x[i]) { if(a[w]-s[i]>=0) { a[w]-=s[i],a[w]/=t[i]; } else { a[w]-=s[i];a[w]=-a[w]; a[w]/=t[i];a[w]=-a[w]; } } } } b[w]=1; return a[w]; } long long search(long long x) { long long l=1,r=n; while(l<r) { //cout<<x<<"\n"; long long mid=(l+r)/2; if(check(mid)<=x) { l=mid+1; } else { r=mid; } } return l; } int main() { cin>>n>>Q>>L>>R; for(long long i=1;i<=n;i++) { cin>>a[i]; } sort(a+1,a+1+n); for(long long i=1;i<=Q;i++) { cin>>q[i]>>x[i]>>s[i]>>t[i]; } cout<<search(R)-search(L)<<"\n"; }