CCF CSPブラシ質問レコード24-201803-2衝突球(Java)

質問番号: 201803-2
質問名: コリジョンボール
制限時間: 1.0秒
メモリ制限: 256.0MB
問題の説明:

問題の説明

  数値軸に長さL(Lは偶数)の線分があり、左端の点が原点にあり、右端の点が座標Lにあります。ボリュームに関係なく、ラインセグメントにはn個のボールがあります。最初は、すべてのボールが偶数座標にあります。速度方向は右で、速度は1秒あたり1単位の長さです。
  ボールがラインセグメントの終点(左端または右端)に到達すると、すぐに反対方向に移動し、速度は変わりません。
  2つの小さなボールが衝突すると、2つの小さなボールは元の移動方向とは逆方向に移動し、元の速度で移動し続けます。
  ここで、線分の長さL、ボールの数n、n個のボールの初期位置を教えてくださいt秒後の各ボールの位置を計算してください。

促す

  すべてのボールの初期位置は偶数であり、線分の長さは偶数であるため、3つのボールが同時に衝突することはなく、ボールが線分セグメントの終わりに到達し、ボール間の衝突が整数であることが証明されます。
  同時に、2つの小さなボールが衝突する位置は整数である必要があります(ただし、偶数である必要はありません)。

入力フォーマット

  入力の最初の行には、スペースで区切られた3つの整数n、L、tが含まれ、ボールの数、ラインセグメントの長さ、t秒後に計算する必要のあるボールの位置を表します。
  2行目には、スペースで区切られたn個の整数a1、a2、…、anが含まれ、最初の瞬間のn個のボールの位置を示します。

出力フォーマット

  出力行にはスペースで区切られたn個の整数が含まれ、i番目の整数は最初の瞬間aiでのボールとt秒後の位置を表します。

入力例

3 10 5
4 6 8

出力例

7 9 9

サンプル概要

  最初は、3つのボールの位置はそれぞれ4、6、8です。

  1秒後、3つのボールの位置はそれぞれ5、7、9になります。

  2秒後、3番目のボールが壁に当たり、速度が逆転します。3つのボールの位置は6、8、10です。

  3秒後、2番目のボールが3番目のボールと9の位置で衝突し、速度が反転します(衝突位置は必ずしも偶数ではないことに注意してください)。3つのボールの位置はそれぞれ7、9、9です。

  4秒後、1番目のボールが2番目のボールと8の位置で衝突し、速度が逆転し、3番目のボールが壁に当たり、速度が逆転します。3つのボールの位置はそれぞれ8、8、10です。 。

  5秒後、3つのボールの位置はそれぞれ7、9、9になります。

入力例

10 22 30
14 12 16 6 10 2 8 20 18 4

出力例

6 6 8 2 4 0 4 12 10 2

データサイズと規則

  すべての評価ケースで、1≤n≤100、1≤t≤100、2≤L≤1000、0 <ai <L。Lは偶数です。
  すべてのボールの初期位置が互いに異なり、偶数であることを確認してください。

import java.util.Scanner;
public class 碰撞的小球 {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int L=sc.nextInt();
		int T=sc.nextInt();
		int[] a=new int[n];
		
		for(int i=0;i<n;i++){
			a[i]=sc.nextInt();
		}
		for(int t=0;t<T;t++){
			for(int i=0;i<n;i++){
				if(a[i]==L){
					a[i]=(-1)*a[i];
				}else if(a[i]==0){
					a[i]=(-1)*a[i];
				}
				a[i]+=1;
				
			}
			for(int i=0;i<n;i++){
				for(int j=i+1;j<n;j++){
					if(Math.abs(a[i])==Math.abs(a[j])){
						a[i]=(-1)*a[i];
						a[j]=(-1)*a[j];
					}
				}
			}
			
		}
		for(int i=0;i<n;i++){
			System.out.print(Math.abs(a[i])+" ");
		}

	}

}

 

おすすめ

転載: blog.csdn.net/m0_37483148/article/details/108364486