本蒟蒻复习 P1886。
然后测样例 vscode 显示 RE。
手动输入了一下,发现可以正常读入。
但是读入完之后立刻寄掉,立刻,下一条语句都没来得及执行(输中量知道的)。
而且如果读入 n,k 之后放一段时间,也会挂掉(自动退出)。
想问一下是什么原因。
/bx
#include <iostream>
#include <vector>
#include <deque>
int n,k;
int main()
{
std::ios::sync_with_stdio(0);
std::cin.tie(0);
std::cout.tie(0);
std::cin>>n>>k;
std::cout<<n<<" "<<k<<'\n';
std::vector<int> a(n+1);
// std::cout<<"jile\n";
for(int i=0;i<n;i++)
{
std::cin>>a[i];
}
std::deque<std::pair<int,int>> que1,que2;
std::vector<std::pair<int,int>> ans(n);
for(int i=0;i<n;i++)
{
while(!que1.empty()&&que1.front().second<n-k+1)que1.pop_front();
while(!que2.empty()&&que2.front().second<n-k+1)que1.pop_front();
while(!que1.empty()&&que1.back().first>a[i])que1.pop_back();
while(!que2.empty()&&que2.back().first<a[i])que2.pop_back();
que1.push_back(std::make_pair(a[i],i));
que2.push_back(std::make_pair(a[i],i));
ans[i]=std::make_pair(que1.front().first,que2.front().first);
}
// std::cout<<"n: "<<n<<'\n';
for(int i=0;i<n;i++)
{
std::cout<<ans[i].first<<' ';
}
std::cout<<'\n';
for(int i=0;i<n;i++)
{
std::cout<<ans[i].second<<' ';
}
return 0;
}