提交时间:2025-02-07 16:05:37
运行 ID: 36115
#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 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; } } } long long l1=1,r1=n,mid,l2=1,r2=n; while(r1>l1){ mid=(l1+r1)/2; if(l1==r1||l1+1==r1) break; if(l>=a[mid]){ l1=mid; } else { r1=mid; } } while(r2>l2){ mid=(l2+r2)/2; if(l2==r2||l2+1==r2) break; if (r<=a[mid]){ r2=mid; } else { l2=mid; } } cout<<r2-l1; return 0; }