Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
36124 | hshh | 【S】T1 | C++ | 运行超时 | 40 | 2000 MS | 1820 KB | 1083 | 2025-02-07 16:22:06 |
#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; } } l2=l1; 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; }