Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
36023 22fhq 【S】T1 C++ 通过 100 117 MS 8064 KB 1312 2025-02-07 14:18:57

Tests(10/10):


#include<bits/stdc++.h> #define int long long using namespace std; void read(int &x){ x=0; bool f=0; char c=getchar(); while(!isdigit(c)){ if(c=='-')f=1; c=getchar(); } while(isdigit(c))x=x*10+(c^48),c=getchar(); if(f)x=-x; return; } int n,Q,L,R; int a[200005],q[200005],x[200005],s[200005],t[200005]; int calc(int v){ for(int i=1;i<=Q;i++){ if(q[i]==1&&v>=x[i])v+=s[i],v*=t[i]; if(q[i]==2&&v<=x[i])v-=s[i],v/=t[i]; } return v; } void slv(){ int mn,mx; int l=0,r=n+1,mid; while(l<r){ mid=l+r>>1; // cout<<l<<" "<<mid<<" "<<r<<endl; if(mid!=0&&mid!=n+1&&calc(a[mid])>=L)r=mid; else l=mid+1; } mn=l; l=0,r=n+1; while(l<r){ mid=l+r+1>>1; if(mid!=0&&mid!=n+1&&calc(a[mid])<=R)l=mid; else r=mid-1; } mx=l; // cout<<mn<<" "<<mx<<endl; if(mx>=mn)cout<<mx-mn+1<<endl; else cout<<0<<endl; } signed main(){ read(n),read(Q),read(L),read(R); for(int i=1;i<=n;i++)read(a[i]); sort(a+1,a+1+n); for(int i=1;i<=Q;i++){ read(q[i]),read(x[i]),read(s[i]),read(t[i]); } // for(int i=1;i<=n;i++)cout<<calc(a[i])<<" "; // cout<<endl; slv(); return 0; }


测评信息: