字首極差
阿新 • • 發佈:2021-01-21
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int N=1e5+10; int n, q; int a[N]; int sb[N], ss[N]; //預處理出來最大值, 最小值, 然後查表 int main() { cin>>n>>q; for(int i=1;i<=n;i++) { scanf("%d", &a[i]); if(i==1) { sb[i]=a[i]; ss[i]=a[i]; } else { sb[i]=max(a[i], sb[i-1]); ss[i]=min(a[i], ss[i-1]); } } while(q--) { int x; scanf("%d", &x); printf("%d ", sb[x]-ss[x]); } return 0; }