九命,求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;
}
应该就离正确答案个位数,但我撑不动了......%%%