爆零求调
查看原帖
爆零求调
1414002
nUII楼主2024/10/5 07:06
#include <bits/stdc++.h>
using namespace std;
int b[8001];
int main()
{
	int n,q;
	cin>>n>>q;
	int a[8001]={0};
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n;j++)
		{
			if(j<i)
			{
				if(a[j]<=a[i])
				{
					b[i]++;
				}
			}
			if(j==i)
			{
				b[i]++;
			}
			if(j>i)
			{
				if(a[j]<a[i])
				{
					b[i]++;
				}
			}
		}
	}
	for(int i=0;i<q;i++)
	{
		int c,x,v;
		cin>>c;
		if(c==1)
		{
			cin>>x>>v;
			int a_update=a[x];
			a[x]=v;
			b[x]=0;
			for(int j=1;j<=n;j++)
			{
				if(j==x)
				{
					for(int _i=1;_i<=n;_i++)
					{
						if(_i<x)
						{
							if(a[_i]<=a[x])
							{
								b[x]++;
							}
						}
						if(x==_i)
						{
							b[x]++;
						}
						if(x<_i)
						{
							if(a[_i]<a[x])
							{
								b[x]++;
							}
						}
					}
				}
				else
				{
					if(j>x)
					{
						if(a[j]>=a[x])
						{
							b[j]++;
						}
						else
						{
							if(a_update<=a[j])
							{
								b[j]--;
							} 
						}
					}
					if(j==x)
					{
						b[j]++;
					}
					if(j<x)
					{
						if(a[j]>a[x])
						{
							b[j]++;
						}
						else
						{
							if(a_update<a[j])
							{
								b[j]--;
							}
						}
					}
				} 
			}
		}
		if(c==2)
		{
			cin>>x;
			cout<<b[x]<<endl;
		}
	}
}

有的输出会多2 不明原因求调

2024/10/5 07:06
加载中...