救我...(56分)
查看原帖
救我...(56分)
497817
羊摆摇楼主2021/11/10 17:09

九命,求dalao改一下吧,蒟蒻真的改不动了

#include <bits/stdc++.h> 
using namespace std;

const int N=5e5+5;
int n;
long long cnt=0;
int CQR[N],RQC[N];

int main(){
	int a=0,tj=1;
	scanf("%d",&n);
	for(int k=1;k<=n;k++)scanf("%d",&CQR[k]);
	RQC[a++]=CQR[1];
	for(int k=2;k<=n;k++){
		if(CQR[k]<RQC[a-1]){
			tj=2;
			RQC[a++]=CQR[k];
			cnt++;
		}else if(CQR[k]==RQC[a-1]){
			RQC[a++]=CQR[k];
			cnt+=tj;
			tj++;
		}else{
			while(true){
				if(RQC[a-1]<CQR[k]){
					cnt++;
					a--;
				}else if(RQC[a-1]==CQR[k]){
					for(int k1=a-1;k1>=0;k1--){
						if(RQC[k1]==RQC[a-1])cnt++;
						else{
							cnt++;
							break;
						}
					}
					RQC[a++]=CQR[k];
					break;
				}else{
					RQC[a++]=CQR[k];
					cnt++;
					break;
				}
				if(a==0){
					tj=1;
					RQC[a++]=CQR[k];
					break;
				}
			}
		}
	}
	cout<<cnt;
	return 0;
}

应该就离正确答案个位数,但我撑不动了......%%%

2021/11/10 17:09
加载中...