CCF 201803-2 碰撞的小球 (C++)

201803-2 碰撞的小球

试题编号: 201803-2
试题名称: 碰撞的小球
时间限制: 1.0s
内存限制: 256.0MB
问题描述CCF 201803-2 碰撞的小球 (C++)_第1张图片
解题过程

按题意解,n的规模并不大直接用数组即可。
题目中有提示,故直接简单模拟小球运动倒计时得到最终位置。

AC代码
#include
using namespace std;
int main()
{
     
	int n,l,t;
	cin>>n>>l>>t;
	int a[n],b[n];//a记录位置,b记录方向 
	for(int i=0;i<n;i++)
	{
     
		cin>>a[i];
		b[i]=1;
	}
	while(t--)
	{
     
		for(int i=0;i<n;i++)
		{
     
			a[i]+=b[i];
			if(a[i]==l||a[i]==0)
				b[i]*=-1;
		}
		for(int i=0;i<n-1;i++)
		for(int j=i+1;j<n;j++)
		{
     
			if(a[i]==a[j])
			{
     
				b[i]*=-1;
				b[j]*=-1;
				break;
			}
		}
	}
	for(int i=0;i<n;i++)
		cout<<a[i]<<' '; 
	return 0;
} 

你可能感兴趣的:(数据结构,算法,c++,c语言,csp)