求助,为什么会报错?
  • 板块灌水区
  • 楼主Eason_cyx大愚若智
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/1/14 16:14
  • 上次更新2023/10/24 04:17:05
查看原帖
求助,为什么会报错?
741244
Eason_cyx大愚若智楼主2023/1/14 16:14
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
int a[1000005];
queue <int> q;
void xsort()
{
    for(int i = 0;i < q.size();i++)
    {
        a[i+1] = q.front();
        q.push(q.front());
    }
    for(int i = 1;i <= q.size();i++)
	{
		for(int j = i + 1;j <= q.size();j++)
		{
			if(a[j] < a[i])
			{
				swap(a[j],a[i]);
			}
		}
	}
}
long long sum()
{
    long long sum = 0;
    for(int i = 2;i <= q.size();i++)
    {
        sum += abs(a[i] - a[i-1]);
    }
    sum += abs(a[1] - a[q.size()]);
    return sum;
}
int main()
{
    int n,q;
    cin >> n >> q;
    for(int i = 1;i <= n;i++)
    {
        int x;
        cin >> x;
        q.push(x);
    }
    while(q--)
    {
        int opt,x;
        cin >> opt >> x;
        if(opt == 1)
        {
            for(int i = 1;i <= q.size();i++)
            {
                if(q.front() == x) q.pop();
                else q.push(q.front());
            }
            xsort();
            cout << sum() << endl;
        }
        if(opt == 2)
        {
            q.push(x);
            xsort();
            cout << sum() << endl;
        }
    }
    return 0;
}

2023/1/14 16:14
加载中...