90分最后一个测试点超时
查看原帖
90分最后一个测试点超时
846444
fendben楼主2024/10/19 10:29

求调

#include<bits/stdc++.h> 
using namespace std;
int a[100005];
int l[100005];
int main()
{
	int n,ans=0;
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++)
	{
		l[i]=0;
	}
	bool ok=0;
	int start=1;
	while(!ok)
	{
		int pos=0;
		bool f=1;
		for(int i=start;i<=n;i++)
		{
			if(l[i]!=a[i]) 
			{
				if(f==1) {
					//cout<<"cishi i:"<<i<<endl;
					ans++;
				}
				l[i]++;
				f=0;
			}
			else
			{
				f=1;
			}
		}
		int zxc=0;
		for(int i=1;i<=n;i++)
		{
			if(zxc==0) start=i;
			if(l[i]==a[i])pos++;
			else zxc=1;
		}
//		for(int i=1;i<=n;i++)
//		{
//			cout<<l[i]<<' ';
//		}
//		cout<<endl;
//		cout<<"pos:"<<pos<<endl;
//		cout<<"ans:"<<ans<<endl;
		if(pos==n) ok=1;
	}
	cout<<ans;
	return 0;
}
2024/10/19 10:29
加载中...