提交时间:2025-02-07 19:11:38

运行 ID: 36141

#include<bits/stdc++.h> using namespace std; const int N=2e5+10; long long n,q,x,s,t,p,l,r,a[N],f,e,i,j; int r1,l1,r2,l2,res1,res2; int main(){ cin>>n>>q>>l>>r; for(i=1;i<=n;i++) cin>>a[i]; for( i=1;i<=q;i++){ cin>>p>>x>>s>>t; sort(a+1,a+n+1); if(p==1){ for( j=n;j>=1;j--){ if(a[j]>=x) a[j]=t*(a[j]+s); else break; } } else{ for( j=1;j<=n;j++){ if(a[j]<=x){ a[j]=(a[j]-s)/t; } else break; } } } l1=1; r1=n; while (l1 <= r1){ int mid=(l1+r1)/2; if (a[mid]>= l){ res1 = mid; r1 = mid - 1; } else l1 = mid + 1; } l2=res1; r2=n; while (l2<=r2){ int mid = (l2+r2)/2; if (a[mid] <= r){ res2 = mid; l2 = mid + 1; } else r2 = mid - 1; } cout<<max(0,res2-res1+1); return 0; }