是这样的,这份代码在本地运行可以过,但是在洛谷上就RE了:
#include <bits/stdc++.h>
using namespace std;
long long a;
stack <int> s;
long long sum;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
while(a>=s.top()&&(!s.empty())){
s.pop();
}
sum+=s.size();
s.push(a);
}
cout<<sum;
return 0;
}
然后代码改个地方,洛谷上就AC了,具体如下:
#include <bits/stdc++.h>
using namespace std;
long long a;
stack <int> s;
long long sum;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
while((!s.empty())&&a>=s.top()){
s.pop();
}
sum+=s.size();
s.push(a);
}
cout<<sum;
return 0;
}
本人太蒟蒻了,不知道为什么。有哪位大佬你能帮我看一下吗?