Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
36119 | hi_hi | 【S】T1 | C++ | 解答错误 | 90 | 169 MS | 8072 KB | 1047 | 2025-02-07 16:14:41 |
#include<bits/stdc++.h> using namespace std; long long n,_,l,r,a[200005],op[200005],x[200005],s[200005],t[200005]; inline long long ck(long long X){ long long T=a[X]; for(int i=1;i<=_;i++){ if(op[i]==1 && T>=x[i]){ T=(s[i]+T)*t[i]; } else if(op[i]==2 && T<=x[i]){ T=(T-s[i])/t[i]; } } return T; } int main(){ scanf("%lld%lld%lld%lld",&n,&_,&l,&r); for(int i=1;i<=n;i++){ scanf("%lld",&a[i]); } sort(a+1,a+n+1); for(int i=1;i<=_;i++){ scanf("%lld%lld%lld%lld",&op[i],&x[i],&s[i],&t[i]); } long long L=1,R=n,ansl=0,ansr=0; while(L<=R){ long long mid=(L+R)/2; if(ck(mid)>=l){ ansl=mid; R=mid-1; } else L=mid+1; } L=1,R=n; while(L<=R){ long long mid=(L+R)/2; if(ck(mid)<=r){ ansr=mid; L=mid+1; } else R=mid-1; } printf("%lld",ansr-ansl+1); return 0; }