90分,程序很长,求助,谢谢
  • 板块P1317 低洼地
  • 楼主gordon321
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/8/3 23:23
  • 上次更新2023/11/3 06:02:40
查看原帖
90分,程序很长,求助,谢谢
987567
gordon321楼主2023/8/3 23:23
#include<bits/stdc++.h>
using namespace std;
int main(){
	int a;
	cin>>a;
	int x[114514]={-1};
	int ans=0;
	for(int i=1;i<=a;i++){
		cin>>x[i];
	}
	for(int i=1;i<a;i++){
	//	cout<<x[i-1]<<x[i]<<x[i+1]<<endl;
		if(x[i-1]>x[i]&&x[i+1]>x[i]){
			ans++;
		//	cout<<i<<endl;
			//i++;
		}
		if(x[i-1]==x[i]&&x[i+1]>x[i]){
			for(int j=0;x[i-1-j]<=x[i];i++){
				if(x[i-2-j]>x[i]){
					ans++;
			//		cout<<i<<endl;
				//	i++;
					continue;
				}
			}
		}
		if(x[i-1]>x[i]&&x[i+1]==x[i]){
			for(int j=0;x[i+1+j]<=x[i];i++){
				if(x[i+2+j]>x[i]){
					ans++;
			//		cout<<i<<endl;
				//	i=i+2+j;
					continue;
				}
			}
		}
		
		if(x[i-1]==x[i]&&x[i+1]==x[i]){
			int j=0;
			for(int j=0;x[i-1-j]<=x[i];j++){
				if(x[i-2-j]>x[i]){
					j++;
				}
			}
			if(j>0){
				for(int j=0;x[i+1+j]<=x[i];i++){
					if(x[i+2+j]>x[i]){
						ans++;
			//			cout<<i<<endl;
					//	i=i+2+j;
						continue;
					}
				}
			}
		}
		//
	}
	cout<<ans;
	return 0;
} 
2023/8/3 23:23
加载中...