求助(悬赏八目鱼bushi)
查看原帖
求助(悬赏八目鱼bushi)
1065103
Atri_Lobato楼主2024/5/5 10:24

没划区间,但是逻辑是一样的T两个点

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int h[5000005];
int p[5000005];
bool point[5000005];
int main()
{
	int n,m,t,ans=0;
	cin>>n>>m>>t;
	for(int i=1;i<=n;i++)
	scanf("%d",&h[i]);
	for(int i=1;i<=m;i++)
	scanf("%d",&p[i]);
	sort(p+1,p+1+m);
	for(int i=1;i<=m;i++)
	{
		bool flag=0;
		int pos=p[i];
		if(h[pos]>t)
		{
			continue;
		}
		int now=pos;
		for(int q=0;h[now]>q;now--,q++)
		{
			if(h[now]>t)
			{
				flag=1;
				break;
			}
			if(point[now]==1)
			{
				flag=1;
				break;
			}
		}
		if(flag)
		{
			continue;
		}
		now=pos;
		for(int q=0;h[now]>q;now++,q++)
		{
			if(h[now]>t)
			{
				flag=1;
				break;
			}
			if(point[now]==1)
			{
				flag=1;
				break;
			}
		}
		if(flag)
		{
			continue;
		}
		now--;
		point[now]=1;
		ans++;
	}
	if(ans)
	cout<<ans+1;
	else
	cout<<ans;
	return 0;
}
2024/5/5 10:24
加载中...