提交时间:2025-02-07 13:33:31

运行 ID: 35981

#include<bits/stdc++.h> using namespace std; #define int long long const int N=2e5+10; int n,Q,L,R,ans; int a[N],q[N],x[N],s[N],t[N]; int check(int m){ for(int i=1;i<=Q;i++){ if(q[i]==1&&m>=x[i])m=t[i]*(m+s[i]); if(q[i]==2&&m<=x[i])m=(m-s[i])/t[i]; } return m; } signed main(){ scanf("%lld%lld%lld%lld",&n,&Q,&L,&R); for(int i=1;i<=n;i++)scanf("%lld",&a[i]); for(int i=1;i<=Q;i++)scanf("%lld%lld%lld%lld",&q[i],&x[i],&s[i],&t[i]); sort(a+1,a+n+1); int l=1,r=n,mid; while(l<r){//lst <=R mid=(l+r+1)>>1; if(check(a[mid])<=R)l=mid; else r=mid-1; } // cout<<l<<endl; ans=l;l=1,r=n; while(l<r){//fr >=L mid=(l+r)>>1; if(check(a[mid])>=L)r=mid; else l=mid+1; } // cout<<l<<endl; ans=ans-l+1; printf("%lld\n",ans); return 0; }