![P1801 黑匣子_NOI导刊2010提高(06) P1801 黑匣子_NOI导刊2010提高(06)](/default/index/img?u=aHR0cHM6Ly93d3cuaWNvZGU5LmNvbS9pL2wvP249MTgmaT1ibG9nLzE1MjI3MTMvMjAxOTA4LzE1MjI3MTMtMjAxOTA4MjMxODQ5NTYwMzEtODYzMTAwODgzLnBuZw==)
![P1801 黑匣子_NOI导刊2010提高(06) P1801 黑匣子_NOI导刊2010提高(06)](/default/index/img?u=aHR0cHM6Ly93d3cuaWNvZGU5LmNvbS9pL2wvP249MTgmaT1ibG9nLzE1MjI3MTMvMjAxOTA4LzE1MjI3MTMtMjAxOTA4MjMxODUwMTA1MTQtODk1Njc0NDk0LnBuZw==)
代码存档
#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;
}
溜了溜了