输入一个长度为n的整数序列(A1,A2,…,An),每个Ai的取值范围均在-50到50之间,从中找出一段连续的子序列,使得这个序列的和最大。
输入格式:
第一行,n(n<=1000);
第二行n个整数。
输出格式:
一个整数,表示连续子序列的最大和。
输入样例:
5
1 2 -4 3 5
输出样例:
8
#include<bits/stdc++.h>
using namespace std;
long long n,x,a,b[100001],q,l,r;
int main(){
cin>>n>>x;
for(int i=1;i<=n;i++)
{
scanf("%lld",&a);
b[i]=b[i-1];
if(a%x==0)b[i]++;
}
cin>>q;
for(int i=1;i<=q;i++)
{
scanf("%lld%lld",&l,&r);
printf("%lld\n",b[r]-b[l-1]);
}
return 0;
}