急急急,请帮忙找错
查看原帖
急急急,请帮忙找错
481621
Zhang_Wenjie楼主2022/8/22 22:46

我的大致思路就是模拟从下往上一层一层累加积水面积,这段代码样例也没过。

#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int n,h[N],ans;
void Delete()
{
	int cnt=0;
	for(int i=1;i<=n;i++) if(h[i]!=0) cnt++;
	if(cnt>=2)
	{
		int l=0,r=0;
		bool flag=false;
		for(int i=1;i<=n;i=flag?r:i+1)
		{
			l=r=0;
			flag=false;
			if(h[i]!=0)
			{
				if(!l) l=i;
				else if(!r) r=i;
			}	
			if(l && r)
			{
				flag=true;
				if(r-l>1)
					for(int j=l+1;j<=r-1;j++) ans++;
				else continue;
			}
		}
		for(int i=1;i<=n;i++) if(h[i]!=0) h[i]--;
		//cout<<ans<<"mid"<<endl;
		Delete();
	}
	else
	{
		cout<<ans<<endl;
		exit(0);
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++) cin>>h[i];
	Delete();
}
2022/8/22 22:46
加载中...