我真的是受不了了
  • 板块P8912 [RC-06] ijk
  • 楼主RNTBW
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/1/22 10:42
  • 上次更新2023/10/24 03:21:19
查看原帖
我真的是受不了了
643735
RNTBW楼主2023/1/22 10:42

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;
}
2023/1/22 10:42
加载中...