题解 | #特殊的极差#
特殊的极差
https://www.nowcoder.com/practice/987311ec16e44c588a4b71101cb3121c
#include <bits/stdc++.h> using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); int n,x,y,z; cin>>n>>x>>y>>z; vector<int> a(n); multiset<int> s;// 利用 multiset对基本数据类型的顺序存储! for(int i = 0; i < n; i++){ cin >> a[i]; } int l(0),r(-1); int ans(0); while(r < n){ s.insert(a[++r]); while(l <= r && (*s.rbegin())*x - (*s.begin())*y > z){ s.erase(s.find(a[l++])); } ans = max(ans,r-l+1); } cout<< ans << endl; return 0; }