@[SeaDchen](/user/1076957) 大佬在此,为你指教,AC代码如下:
```c
#include<cstdio>
#include<stack>
using namespace std;
int n,a[3000005],f[3000005];
stack<int>s;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=n;i>=1;i--)
{
while(!s.empty()&&a[s.top()]<=a[i]) s.pop();
f[i]=s.empty()?0:s.top();
s.push(i);
}
for(int i=1;i<=n;i++) printf("%d ",f[i]);
return 0;
}
```
######
------------
###### 完 结 啦
by speantime @ 2023-09-03 17:10:50
@[speantime](/user/1058284) 明白大佬的思路了,不过大佬能不能帮我看看为什么我的代码超时了,过不了测试点,我想知道自己的错,然后改改代码,麻烦大佬了
by SeaDchen @ 2023-09-03 17:25:56
已调试成功了,谢谢```cpp
// 加入个c的头文件
#include<cstido>
// 将cin和cout替换成c输入和输出的方式,即可减少运行时间
```
by SeaDchen @ 2023-09-03 18:06:13
超过1e6都用scanf和printf就可以ac
by yujiahaoa @ 2023-09-09 15:09:11
开o2即可(狗头
by 哈哈人生 @ 2023-10-01 12:32:03
@bj12z_zhaoqianhao开o2不一定吧,o2可以优化输入吗?
by yujiahaoa @ 2023-10-28 15:15:08