#750. 【模板】单调栈
【模板】单调栈
题目描述
给出项数为 的整数数列 。
定义函数 代表数列中第 个元素之后第一个大于 的元素的下标,即 。若不存在,则 。
试求出 。
输入格式
第一行一个正整数 。
第二行 个正整数 。
输出格式
一行 个整数 的值。
样例
输入样例
5
1 4 2 3 5
输出样例
2 5 4 5 0
数据范围与提示
对于 的数据,;
对于 的数据,;
对于 的数据,,。
给出项数为 n 的整数数列 a1…n 。
定义函数 f(i) 代表数列中第 i 个元素之后第一个大于 ai的元素的下标,即 f(i)=mini<j≤n,aj>ai{j}。若不存在,则 f(i)=0。
试求出 f(1…n)。
第一行一个正整数 n。
第二行 n 个正整数 a1…n 。
一行 n 个整数 f(1…n) 的值。
5
1 4 2 3 5
2 5 4 5 0
对于 30% 的数据,n≤100;
对于 60% 的数据,n≤5×103;
对于 100% 的数据,1≤n≤3×106,1≤ai≤109。