CSP 202109-2 Non-zero segment division

The following 100-point codes are for reference only.
topic link

C++ code

#include<bits/stdc++.h>
using namespace std;
int main()
{
    
    
	int n;
	int MAX=0;
	int sum=0;
	int data,flag=1;
	int a[500005]={
    
    0};
	int temp[10005]={
    
    0};
	cin>>n;
	for( int i=1; i<=n; i++ )
	{
    
    
		cin>>data;
		if( i==1 )
		{
    
    
			a[flag] = data;
			flag++;
		}
		if( i!=1 )
		if( a[flag-1]!=data )
		{
    
    
			a[flag] = data;
			flag++;
		}
	}
	a[0]=0;
	a[flag]=0;
	for( int i=1; i<flag; i++ )
	{
    
    
		if( a[i]>a[i-1] &&a[i]>a[i+1] )
		{
    
    
			temp[a[i]]++;
		}
		else if( a[i]<a[i-1] &&a[i]<a[i+1] )
		{
    
    
			temp[a[i]]--;
		}
	}
	MAX=temp[10000];
	for( int i=10000; i>=1; i-- )
	{
    
    
		sum+=temp[i];
//		if(sum>MAX)
//		MAX = sum;
		MAX = max(sum,MAX);
	}
	cout<<MAX;
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_47700137/article/details/125107524
Recomendado
Clasificación