P1801 黑匣子_NOI导刊2010提高(06)
代码存档
#include <bits/stdc++.h>
using namespace std;
multiset<int> s ;
int a[201000] , b[201000] ;
int main() {
multiset<int>::iterator d ;
int m , n ;
scanf("%d%d" , &m , &n) ;
for(int i = 1 ; i <= m ; i ++)
scanf("%d",&a[i]);
for(int i = 1 ; i <= n ; i ++) {
scanf("%d",&b[i]);
if(i == 1) {
for(int j = 1 ; j <= b[1] ; j ++)
s.insert(a[j]) ;
d=s.begin();
printf("%d\n",*d);
}
else {
for(int j=b[i-1] + 1 ; j <= b[i] ; j ++) {
s.insert(a[j]);
if(a[j]<*d)d--;
}
d++;
printf("%d\n",*d);
}
}
return 0;
}