1 条题解

  • 3
    @ 2026-5-21 16:46:59

    上代码

    #include<bits/stdc++.h>
    using namespace std;
    long long n,k,a[1000010],sum=0;
    int zd=-1;
    bool check(long long a){
    	long long s=0,t=a;
    	while(t>0){
    		s+=t%10;
    		t=t/10;
    	}
    	return (a%s)==0;
    }
    int main(){
    	cin>>n>>k;
    	for(int i=1;i<=n;i++){
    		scanf("%lld",&a[i]);
    	}
    	for(int l=1,r=1;r<=n;r++){
    		sum+=check(a[r]);
    		while(sum>k){
    			sum=sum-check(a[l]);
    			l++;
    		}
    		if(sum<=k) zd=max(zd,r-l+1);
    	}
    	cout<<zd;
    	return 0;
    } 
    
    
    

    信息

    ID
    5694
    时间
    1000ms
    内存
    256MiB
    难度
    3
    标签
    递交数
    162
    已通过
    62
    上传者