5 条题解

  • 1
    @ 2025-11-16 14:55:40

    #include<iostream> #include<algorithm> using namespace std; #define ll long long

    int main() { ios::sync_with_stdio(0);

    cin.tie(0);

    cout.tie(0);

    int t,n,l,r;

    cin>>t;

    while(t--){

    cin>>n>>l>>r;

    ll a[n+10],b[n+10]={0},ans=0;

    for(int i=1;i<=n;i++){

    cin>>a[i];

    if(a[i]>r){

    b[i]=0;//标记超出范围的数

    continue;

    }

    b[i]=1;

    }

    for(int i=1;i<=n;i++){

    if(b[i]==0){

    continue;

    }

    if(b[i]==1){

    if(a[i]>=l){

    ans++;

    }

    if(a[i]<l){

    int sum=a[i];

    for(int j=i+1;j<=n;j++){//依次相加判断

    if(b[j]==0){

    break;

    }

    if(b[j]==1){

    sum+=a[j];

    if(sum>=l&&sum<=r){

    ans++;

    for(int l=i+1;l<=j;l++){

    b[l]=0;//取过的牌标记防止再用

    }

    break;

    }

    if(sum>r){

    break;

    }

    if(sum<l){

    continue;

    }

    }

    }

    }

    }

    }

    cout<<ans<<"\n";

    }

    return 0;

    }

    我叶梓楣也要成为duck大魔王!!!(2)

    信息

    ID
    1206
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    (无)
    递交数
    167
    已通过
    20
    上传者