为啥错了?
查看原帖
为啥错了?
164227
flywan123楼主2020/7/9 21:06
#include<bits/stdc++.h>
using namespace std;
int n,a[100001]={0},b[100001]={0};
long long sum=0,sum1=0,kt,ans=0;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		b[i]=1;
	}
	bool flag=true;
	while(1)
	{
		flag=true;
		for(int i=1;i<=n;i++)
		{
			if(a[i]!=b[i])
			flag=false;
		}
		if(flag)
		{
			break;
		}
		kt=1;
		sum=0;
		sum1=0;
		for(int i=1;i<=n;i++)
		{
			if(b[i]<a[i])
			{
				sum++;
			}
			else
			{
				if(sum>sum1)
				{
					sum1=sum;
					kt=i-sum;
				}
				sum=0;
				for(int j=kt;j<=sum1;j++)
				{
					b[j]++;
				}
			}
		}
		ans++;
		for(int i=1;i<=n;i++)
		{	
			cout<<b[i];
		}
	}
	cout<<ans;
	return 0;
}
2020/7/9 21:06
加载中...