参考来源:https://blog.csdn.net/htt_h/article/details/39716905
一、题解方法
维护一个单调递减队列,如果输入元素大于队尾元素,则清空队列。因此,队尾减队头就是所有矮于当前身高的奶牛数。
二、题解代码
1 #include <iostream> 2 3 using namespace std; 4 5 6 int que[80000]; 7 int head = 0, rear = -1; 8 9 int main() 10 { 11 int n, input; 12 long long ans = 0; 13 cin >> n; 14 while(n--){ 15 cin >> input; 16 while(rear >= head && input >= que[rear]) rear--; //清除矮的 17 que[++rear] = input; //插入 18 ans += rear - head; //统计 19 } 20 21 cout << ans << endl; 22 return 0; 23 }