练习4

· · 个人记录

下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码下次一定要改cf密码
T1

#include<iostream>
#include<cmath>
using namespace std;
int _,l,r;
int main(){
    cin>>_;
    while(_--){
        cin>>l>>r;
        cout<<int(log2(r))<<endl;
    }
    return 0;
}

T2

#include<iostream>
using namespace std;
int _,n,l,r,arr[100001];
int main(){
    cin>>_;
    while(_--){
        cin>>n>>l>>r;
        for(int i=1;i<=n;i++) cin>>arr[i];
        int g=1,ans=0;
        while(g<=n){
            int sum=arr[g++],f=1;
            if(g==n+1){
                if(sum>=l && sum<=r) ans++;
                break;
            }
            while(sum<l){
                if(sum+arr[g]>r && arr[g]>=l  && arr[g]<=r){
                    f=0;
                    break;
                }
                sum+=arr[g++];
                if(g==n+1){
                    if(sum>=l && sum<=r) ans++;
                    f=0;
                    break;
                }
            }
            if(!f) continue;
            if(sum>=l && sum<=r) ans++;
        }
        cout<<ans<<endl;
    }
    return 0;
}
下面是申金版
#include<iostream>
using namespace std;
int _,__,___,_____,____[100001];
int main(){
    cin>>_;
    while(_--){
        cin>>__>>___>>_____;
        for(int i=1;i<=__;i++) cin>>____[i];
        int ________=1,_________=0;
        while(________<=__){
            int _______=____[________++],______=1;
            if(________==__+1){
                if(_______>=___ && _______<=_____) _________++;
                break;
            }
            while(_______<__){
                if(_______+____[________]>_____ && ____[________]>=___  && ____[________]<=_____){
                    ______=0;
                    break;
                }
                _______+=____[________++];
                if(________==__+1){
                    if(_______>=___ && _______<=_____) _________++;
                    ______=0;
                    break;
                }
            }
            if(!______) continue;
            if(_______>=___ && _______<=_____) _________++;
        }
        cout<<_________<<endl;
    }
    return 0;
}