运行不了,求调
查看原帖
运行不了,求调
540757
wangyihao0411楼主2024/7/7 10:03
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<queue>
using namespace std;
long long a[100010],b1[100010],b2[100010];
queue<int> q;
queue<int> q1;
int main(){
	int n,k;
	cin >> n >> k;
	for(int i=1;i<=n;i++)
	{
		cin >> a[i];
		while(!q.empty())
		{
			int t=q.front();
			if(t<k-i+1)
			{
				q.pop();
			}
			else
			{
				break;
			}
		}
		if(q.empty())
		{
			q.push(i);
		}
		int v=q.back();
        v=a[v];
		if(a[i]>v)
		{
			q.push(i);
		}
        else
        {
            while(!q.empty())
	    	{
	    		q.pop();
    		}
	    	q.push(i);
        }
		b1[i]=q.front();
	}
	for(int i=1;i<=n;i++)
	{
		while(!q1.empty())
		{
			int t=q1.front();
			if(t<k-i+1)
			{
				q1.pop();
			}
			else
			{
				break;
			}
		}
		if(q1.empty())
		{
			q1.push(i);
		}
		int v=q.back();
        v=a[v];
		if(a[i]<v)
		{
			q1.push(i);
		}
        else
        {
            while(!q.empty())
    		{
	    		q1.pop();
    		}
	    	q1.push(i);
        }
		b2[i]=q1.front();
	}
	for(int i=1;i<=n-k+1;i++)
	{
		cout << b1[i] << " ";
	}
	for(int i=1;i<=n-k+1;i++)
	{
		cout << b2[i] << " ";
	}
	return 0;
}
2024/7/7 10:03
加载中...