9敏,就是过不去,1小时了
查看原帖
9敏,就是过不去,1小时了
463649
the_shadow楼主2021/10/12 20:30

本蒟蒻已经卡1小时了,这普及-快被做成省选了,(雾

#7

in:100 3 2 2 3 1 2 2 2 1 2 2 3 2 3 2 2 3 3 2 2 2 3 3 3 3 2 2 1 2 2 1 1 1 3 1 1 2 2 3 3 1 1 2 2 1 1 3 1 3 1 3 2 1 2 1 3 3 3 1 2 1 1 2 1 3 2 2 1 1 1 3 1 2 2 3 3 2 3 3 2 1 2 3 1 3 1 1 3 3 1 1 1 1 3 1 1 2 3 1 2

out:37

#include<iostream>
#include<algorithm>
using namespace std;
int n,a[10001],b[10001],c[10001],jishu;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		b[i]=a[i];
	}
	sort(b+1,b+1+n);
	int i=0;
	bool flag1=0;
	while(!flag1)
	{
		flag1=1;
		for(int j=1;j<=n;j++)
		{
			if(a[j]!=b[j])
			{
				flag1=0;
				break;
			}
		}
		i++;
		if(i>n)i=1;
		bool flag=false;
		if(a[i]!=b[i])
		{
			for(int j=1;j<=n;j++)
			{
				if(a[j]!=b[j]&&i!=j&&a[j]==b[i]&&a[i]==b[j])
				{
					swap(a[i],a[j]);
					jishu++;
					flag=true;
					break;
				}
			}
			if(!flag)
			{
				for(int j=1;j<=n;j++)
				{
					if(a[j]!=b[j]&&i!=j&&a[j]!=a[i])
					{
						for(int k=j+1;k<=n;k++)
						{
							if(a[k]!=b[k]&&i!=k&&k!=j&&a[j]!=a[k]&&a[k]!=a[i])
							{
								int tmp,tmp1,tmp2,tmp3,tmp4;
								tmp=min(i,j);
								tmp=min(tmp,k);
								a[tmp]=1;
								tmp1=tmp;
								tmp2=max(i,j);
								tmp2=max(tmp2,k);
								a[tmp2]=3;
								a[i+k+j-tmp-tmp2]=2;
								jishu+=2;
							    break;
							}
						}
						break;
					}
				}
			}
		}
	}
	cout<<jishu;
	return 0;
}
2021/10/12 20:30
加载中...