80分求调
查看原帖
80分求调
1115386
dingxiangqian楼主2024/10/19 11:10

原本输出总是会+1,只有#12能对 在输出时-1是#11#12#13#17#20错 用是用若两个数相减mod7=0,那么这两个数 mod 7的余 数一定相同做的,求大佬帮忙


#include<bits/stdc++.h>
using namespace std;
int firstl[7];
int n,sum[50010],a[50010],l[10],r[10],ans[10];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        sum[i]=sum[i-1]+a[i];
    }
    for(int i=0;i<=6;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(sum[j]%7==i)
            {
                if(firstl[i]==0)
                {
                    firstl[i]=1;
                    l[i]=j;
                }
                else
                {
                    r[i]=j;
                }
            }
        }
    }
    for(int i=0;i<7;i++)
    {
        if(l[i]==0&&r[i]==0) ans[i]=-100;
        else if(r[i]==0) ans[i]=1;
        else ans[i]=r[i]-l[i]+1;
    }
    cout<<*max_element(ans,ans+6)-1;
}
2024/10/19 11:10
加载中...