题解:AT_abc448_c [ABC448C] Except and Min
AT_abc448_c [ABC448C] Except and Min
思路
注意到
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=3e5+10;
int a[N],b[10],c[10];
priority_queue<int,vector<int>,greater<int> > q;
signed main(){
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int n,Q;cin>>n>>Q;
for (int i=1;i<=n;i++) cin>>a[i],q.push(a[i]);
while (Q--){
int k;cin>>k;
vector<int> v;
for (int i=1;i<=k;i++) cin>>b[i];
for (int i=1;i<=k;i++) c[i]=a[b[i]];
sort(c+1,c+1+k);
for (int i=1;i<=k;i++){
if (c[i]==q.top()) q.pop(),v.push_back(c[i]);
}
cout<<q.top()<<'\n';
for (int i=0;i<(int)v.size();i++) q.push(v[i]);
}
return 0;
}