一次通过,太不容易了!!!!!!
附上代码:
#include <iostream>
using namespace std;
//0表示正向,1表示反向
int change(int i){
if(i==0)
return 1;
if(i==1)
return 0;
}
int coordinate(int a, int b){
if(b==0)
return a+1;
else if(b==1)
return a-1;
else {
cout << "该数字非0且非1";
}
}
int main()
{
int n, L, t;//小球个数,线段长度和计算t秒之后小球的位置
cin >> n >> L >> t;
int a[n][2];//用于记录球的位置
for(int i=0; i<n; i++){
a[i][1]={0};
cin >> a[i][0];
}
// cout << a[0][1] << a[1][1];
for(int i=1; i<=t; i++){
for(int j=0; j<n; j++){
//遍历查看是否有相同坐标的小球,若有相同的坐标就转向
for(int m=j+1; m<n; m++){
if(a[j][0]==a[m][0]){
// cout << "有相同坐标的小球";
a[m][1]=change(a[m][1]);
a[j][1]=change(a[j][1]);
}
}
if(a[j][0]==0||a[j][0]==L) a[j][1]=change(a[j][1]);
//得到现在小球的坐标
// cout << a[j][0] << " " <<a[j][1] << endl;
a[j][0]=coordinate(a[j][0], a[j][1]);
}
}
for(int i=0; i<n; i++) cout << a[i][0] << " ";
return 0;
}