求助P1886
  • 板块灌水区
  • 楼主快乐一凡
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/3/26 23:28
  • 上次更新2023/10/28 05:27:20
查看原帖
求助P1886
502426
快乐一凡楼主2022/3/26 23:28

这是代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
const long long x=10e6+20;
long long  N,K,da[x],dl[x],id[x],le=1,ri;
using namespace std;
int main()
{
	cin>>N>>K;
	for(int i=1;i<=N;i++)
	{
		scanf("%d",&da[i]);
	}
	for(int i=1;i<=N;i++)
	{
		while(le<=ri&&da[i]<=dl[ri])
		{
			ri--;
		}
		ri++;
		dl[ri]=da[i];
		id[i]=i;
		if(id[le]+K<=i)
		{
			le++;
		}
		if(i>=K)
		{
			printf("%d ",dl[le]);
		}
	}
	cout<<endl;
	for(int i=1;i<=N;i++)
	{
		while(le<=ri&&da[i]>=dl[ri])
		{
			ri--;
		}
		ri++;
		dl[ri]=da[i];
		id[i]=i;
		if(id[le]+K<=i)
		{
			le++;
		}
		if(i>=K)
		{
			printf("%d ",dl[le]);
		}
	}
	cout<<endl;
	return 0;
}

题目

望大佬指正,谢谢啦!

2022/3/26 23:28
加载中...