压缩到极限了,还是TLE了两个点qwq
  • 板块P1801 黑匣子
  • 楼主Calanosay
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/3/24 16:35
  • 上次更新2023/11/5 01:40:25
查看原帖
压缩到极限了,还是TLE了两个点qwq
434015
Calanosay楼主2021/3/24 16:35
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
int a[maxn],b[maxn],p;
inline int read()
{
    char c = getchar();int x = 0,s = 1;
    while(c < '0' || c > '9') {if(c == '-') s = -1;c = getchar();}
    while(c >= '0' && c <= '9') {x = x*10 + c -'0';c = getchar();}
    return x*s;
}
vector<int> ans;
stack<int> s;
int main(){
	int m,n;
	m=read();
	n=read();
	for(int i=1;i<=m;++i)	a[i]=read();
	for(int i=1;i<=n;++i)	b[i]=read();
	for(int i=n;i>=1;--i)	s.push(b[i]);
	for(int i=1;i<=m;++i){
		ans.insert(lower_bound(ans.begin(),ans.end(),a[i]),a[i]);
		while(!s.empty()&&s.top()==i){
			printf("%d\n",ans[p]);
			++p;
			s.pop();
		}
		if(s.empty())	break;
	}
}
2021/3/24 16:35
加载中...