RT,救救孩子吧,95分,肺都气炸了
并且还是Subtask #1错了/dk
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define N 1000001
ll a[N],l[N],r[N];
ll n,m,i,j,k,s,ans;
bool f[N];
ll cnt(ll k,ll s,ll n,ll m)
{
ll ans=0;
if(k>=n&&s<=m)ans=s-k+1;
else if(k>=n&&k<=m&&s>=n)ans=m-k+1;
else if(k<=n&&s>=m)ans=m-n+1;
else if(k<=n&&s<=m&&s>=n)ans=s-n+1;
return ans;
}
int main()
{
scanf("%lld",&n);
for(i=1;i<=n;i++)
{
scanf("%lld",&a[i]);f[a[i]]=1;
if(a[i]>a[i-1])l[a[i]]=i,r[a[i-1]]=i-1;
}
r[a[n]]=n;
for(i=1;i<N;i++)
for(j=1;j<N&&i*j<N*3-2;j++)
for(k=1;k<N&&i*j*k<N*3-2;k++)
{
if(!f[i]||!f[k])continue;
s=i*j*k-a[j];
ans+=cnt(s-r[i],s-l[i],l[k],r[k]);
}
printf("%lld",ans);
return 0;
}