Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
36027 22级廖思学 【S】T1 C++ 通过 100 168 MS 8060 KB 1029 2025-02-07 14:35:22

Tests(10/10):


#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(){ // freopen("arithmetic.in","r",stdin); // freopen("arithmetic.out","w",stdout); 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=0,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+1; 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); // fclose(stdin); // fclose(stdout); return 0; }


测评信息: