一个简单的暴力
直接枚举长度与开始点,判断是否存在平均花即可
注意这里取平均不是向下取整(不存在3.6的花瓣)所以特判一下
#include<iostream>
#include<unordered_set>
using namespace std;
const int N=1e2+10;
int g[N];
int n,res;
void fun(int l,int r)
{
unordered_set<int>mp;
int sum=0;
for(int i=l;i<=r;i++)
{
sum+=g[i];
mp.insert(g[i]);
}
if(sum%(r-l+1)==0&&mp.count(sum/(r-l+1)))res++;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>g[i];
for(int i=1;i<=n;i++)
{
for(int j=1;j+i-1<=n;j++)
{
fun(j,i+j-1);
}
}
cout<<res<<endl;
return 0;
}