68pts求hack
  • 板块P1801 黑匣子
  • 楼主canwen
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/25 18:21
  • 上次更新2024/10/25 19:31:47
查看原帖
68pts求hack
1284815
canwen楼主2024/10/25 18:21
#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 5;
int m,n,a[N],b[N];
multiset <int> s;
multiset <int> :: iterator it,it2;
inline int in(){
	char a = getchar();
	int k = 0 , kk = 1;
	while(a>'9'||a<'0'){
		if(a=='-') kk = -1;
		a = getchar();
	}
	while(a>='0'&&a<='9'){
		k = k*10 + a - '0';
		a=getchar();
	}
	return k*kk;
}
void out(int k){
	if(k<0) putchar('-'),k=-k;
	if(k>9) out(k/10);
	putchar(k%10+'0');
}
signed main(){
	m = in(), n = in();
	for(int i=1;i<=m;i++){
		a[i] = in();
	}
	s.insert(a[1]);
	it = s.begin();
	int last = 2;
	for(int i=1;i<=n;i++){
		b[i] = in();
		for(int j=last;j<=b[i];j++){
			s.insert(a[j]);
			if(a[j]<=*it) --it;
		}
		out(*it);
		putchar('\n');
		++it;
		last = b[i] + 1;
	}
	return 0;
}
2024/10/25 18:21
加载中...