0
点赞
收藏
分享

微信扫一扫

CCFCSP201803-2碰撞的小球

青乌 2022-04-14 阅读 27
c++

 

 

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
vector<int>ve;
bool b[101],q[1001];
int x[101],c[101];
void pz(int a[],bool d[],int t,int n,int l) 
{
	sort(a+1,a+n+1);
	for(int i=1;i<=t;i++)
	for(int j=1;j<=n;j++)
	{
		 if (a[j]==a[j+1]&&j+1<=n)
		{
			if(d[j]==0&&d[j+1]==1) 
			{d[j]=1;
			d[j+1]=0;
		    a[j]--;
			a[j+1]++;
			j++;
			continue;}
			if(d[j]==1&&d[j+1]==0) 
			{d[j]=0;
			d[j+1]=1;
		    a[j]++;
			a[j+1]--;
			j++;
			continue;}
		}
		if(a[j]<l&&d[j]==0) 
		{
		a[j]++;
		continue;}
		else if (a[j]>0&&d[j]==1) {
		a[j]--;
		continue;}
		else if(a[j]==l) 
		{
		d[j]=1;
		a[j]--;
		continue;}
		else if(a[j]==0) 
		{
		d[j]=0;
		a[j]++;
		continue;}		
	}
}
int main()
{
	int m,len,ti,s=1;
	cin>>m>>len>>ti;
	for(int i=1;i<=m;i++)
	{
	cin>>x[i];
	ve.push_back(x[i]); 
	}
	sort(ve.begin(),ve.end());
	for(int j=1;j<=m;j++)
	for(int i=0;i<ve.size();i++)
		if(x[j]==ve[i]) 
		{
		c[s]=i+1;
		s++;}
	pz(x,b,ti,m,len);
	for(int i=1;i<=m;i++)
	cout<<x[c[i]]<<" ";
	return 0;	 
}
 
举报

相关推荐

0 条评论