有五个点re了,求大佬调一下
查看原帖
有五个点re了,求大佬调一下
1221266
amtuilasi楼主2024/1/10 10:17
#include<iostream>
using namespace std;
#include<deque>
deque<int>d1;
deque<int>d2;
inline void read(int &a)
{
	int s = 0, w = 1;
	char ch = getchar();
	while (ch < '0' || ch>'9')
	{
		if (ch == '-')
			w = -1;
		ch = getchar();
	}
	while (ch <= '9' && ch>='0')
	{
		s = s * 10 + ch - '0';
		ch = getchar();
	}
	a = s * w;
	
}

int x[100001];

int main()
{
	int m, n;
	read(n); read(m);
	for (int i = 1; i <= n; i++)
	{
		read(x[i]);
		while (!d2.empty() && x[d2.back()] >= x[i])d2.pop_back();
		d2.push_back(i);
		if (d2.front() == i - m)d2.pop_front();
		if (i >= m)cout << x[d2.front()]<<" ";
	}

	cout << endl;

	for (int i = 1; i <= n; i++)
	{
		while (!d1.empty() && x[d1.back()] <= x[i])d1.pop_back();
		d1.push_back(i);
		if (d1.front() == i - m)d1.pop_front();
		if (i >= m)cout << x[d1.front()]<<" ";
	}
	return 0;
}
2024/1/10 10:17
加载中...