1001.鸡蛋(课程E)
题目描述
一天白雪公主来到超市为七个小矮人买鸡蛋,这里的鸡蛋都包装在篮子里,每个篮子的鸡蛋数都不相同。这些篮子排成一行,白雪公主要买其中连续的一段。不过为了每个小矮人分的鸡蛋数一样,有一个条件:这连续一段篮子的鸡蛋数的和要能被7整除。
现在知道n个篮子的每一个里面鸡蛋数,问白雪公主有多少种购买方案?
输入格式
第一行2个正整数:N,范围在[1,100000]。
第二行N个正整数:范围在[1,100]。
输出格式
一个整数。
输入/输出例子1
输入:
5
8 6 2 7 9
输出:
2
程序
#include<bits/stdc++.h>
using namespace std;
long long a[100001],b[11],n;
int s,h;
int main()
{
cin>>n;//输入n
for(int i=1;i<=n;i++)
{
cin>>a[i];//输入数组
a[i]=a[i-1]+a[i];//前缀和
a[i]%=7;//求出树中的余数
b[a[i]]++;//每个a[i]%余数后的数用于作下标 ,b[i]是用来统计的一个数组
}
s=b[0];//把s赋值为b[0]
for(int i=0;i<8;i++)
{
s+=b[i]*(b[i]-1)/2;
}
cout<<s;
return 0;
}