全部评论
从最大的队列开始枚举检查,遇到就输出队列长度,然后就可以100%通过了。
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
int arry[] = new int[100000];
//读入数据
int n = input.nextInt();
for(int i = 0;i < n;i++)
{
arry[i] = input.nextInt();
}
int kk = input.nextInt();
int flag = 0;//最长标志位
loop:
for(int i = n; i >= 1;i--)//从最大的队列长度开始判断
{
int k = n - i + 1;//长度i最大的开始位置
for(int j = 0;j < k;j++)//求每个串的元素和
{
long sum = 0;
for(int l = 0;l < i;l++)
{
sum = sum + arry[j+l];
}
if(sum % kk == 0 && sum >= kk)
{
flag = i;
break loop;
}
}
}
System.out.println(flag);
}
相关推荐