P1801 黑匣子_NOI导刊2010提高(06)

P1801 黑匣子_NOI导刊2010提高(06)
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;
}

溜了溜了

上一篇:[bzoj4777]Switch Grass


下一篇:STL之multiset(可重集)