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
",*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
",*d);
        }
    }
    return 0;
}

溜了溜了

原文地址:https://www.cnblogs.com/lyt020321/p/11402046.html