2022年8月7日開催 DDCC2022本戦は終了しました。
Q1:シミュレータ
問題文
装置を操作し、ターゲットの穴に入れた玉の数を競う競技です。
ただし、予選には実機を用いず、ジャッジサーバー上でシミュレーションを行って順位を決定します。このシミュレーションは装置の物理現象や部品・組立時の誤差を考慮しません。
- テーブルの傾きと玉の射出方向を制御して、100秒以内に7カ所のターゲットの穴を狙って70個の玉を入れる競技です。
- 各ターゲットに入れられる有効な玉数は1カ所あたり10個までです。11個目以降は無効となります。
- 持ち玉は70個です。
- 玉の大きさは直径13mmです。
- 玉の質量は9gです。
- 玉の初速は、テーブルの(0,0)位置で、500mm/secです。地面に対して水平方向に打ち出します。
- ターゲットの穴の個数は7個あります。
- 装置制御時間は100秒です。
- テーブルを傾けるための上下機構をもつ軸が3軸あります。C軸・L軸・R軸です。
- C軸・L軸・R軸の位置を表す値がすべて0のとき、テーブル上面は水平です。
- C軸高さの条件は、C軸高さ ≥ (L軸高さ + R軸高さ) / 2 になります。
- 回転する棒が3本あります。α軸・β軸・γ軸です。
- 各棒の回転角度の初期値は0度です。
- 棒の中心線がX方向に対して平行な位置が0度位置です。
- α軸・β軸・γ軸の回転方向は、上部から見て時計回り方向が正の方向、反時計回り方向が負の方向です。
- α軸は、現在位置に以下の計算式の値(αr)を加算した位置へ移動します。
- αr =その出力行を実行するまでに射出した球数の正の約数の個数✕30
- 但し、射出済みの玉が0個の場合は αr=0とします。
- 例
- 射出済みの玉が30個の場合、正の約数の個数は8になります。(1,2,3,5,6,10,15,30)
- ar = 8 x 30 = 240°
- β軸は、現在位置に以下の計算式の値(βr)を加算した位置へ移動します。
- βr= ( C軸高さ(mm)+L軸高さ(mm)+R軸の高さ(mm) )✕100
- C軸 高さ・L軸 高さ・R軸 高さの値は、次に動作させる高さの値です。
- 例
- C軸 高さ 0.1mm
- L軸 高さ 1.2mm
- R軸 高さ -0.13mm
- βr = (0.100mm + 1.200mm + (-0.130mm) ) x 100 =117.0°
- γ軸は、出力1行分の動作開始時に、現在位置+35度へ移動します。
- α軸・β軸・γ軸が、±360度以上回る場合は、それぞれの回転方向に回る角度を360度で割った余りの分回ります。
- 射出方向を制御するための旋回機構を持つθ軸があります。
- 1回の動作で、C軸・L軸・R軸・θ軸・α軸・β軸・γ軸は同時に動作し、距離に関わらず1700msかかります。
- 1個の玉を射出するのに必ず500msかかります。
- 100秒までに射出された玉までが得点計算に使用されます。
- 待ち時間(Tm)に達して、次の動作に入った場合、その時点で穴に落ちていない玉は無効になります。
- 但し、時間切れ(100秒)直前で、射出された玉は、待ち時間(Tm)にかかわらず、穴に入った場合は、有効になります。
- ターゲットの穴に入ったかの判定は、穴のY座標を玉がYのプラス方向に通過する際に、穴の中心から半径の範囲に玉の中心が通過するかどうかで行います。
- 穴に入る前にテーブル外に玉が落ちた場合もその時点でその玉は無効になります。
- α軸・β軸・γ軸の棒に当たった玉は、無効となります。
- シミュレータ問題の場合は、玉の中心が棒の中心線を通過したらあたったと判定します。(図C参照)
- 得点の計算方法
- 得点 = 玉が入ったターゲットの数 × 有効な玉数の合計
- 得点の計算方法の例
制約
- 玉は剛体としテーブル上で滑らないものとし、以下の式に従うものとする。
- 空気抵抗と転がり抵抗は考慮しないものとする。
- 斜面を転がる剛体球の斜面方向の加速度
入力
- 入力の値はすべて整数です。
- 入力データファイルをダウンロードして解答してください。
- テストケースは5問出題されます。
- 値はmmで指定します
x1 y1 x2 y2 x3 y3 x4 y4 x5 y5 x6 y6 x7 y7 xα yα xβ yβ xγ yγ
-350 ≤ x1, x2, x3, x4, x5, x6, x7, xα, xβ, xγ ≤ 350
200 ≤ y1, y2, y3, y4, y5, y6, y7, yα, yβ, yγ ≤ 950
出力
- 以下の出力形式で解答し、1問分の入力に対して、1 行以上30行以下で、装置の100秒間の動作を指定してください。
- 合計所要時間が100 秒未満であったり100秒を超えるような動作指定を行ってもよいですが、時間切れ後は得点に数えません。
- 1つの入力に対する出力の区切りとして、半角のセミコロン”;”をつけて回答してください。
Ch,Lh,Rh,θr,Nu,Tm
- 順に C軸の高さ、L軸の高さ、 R軸の高さ、 θ軸の射出角度、射出する玉の数、 射出後の待ち時間です。(カンマを忘れないこと。)
- C軸・L軸・R軸は、上方向が‘+’方向です。
- これらは以下を満たす整数でなければなりません。
-5000 ≤ Ch ≤ 1000 |
単位: μm (= 1/1000 mm) |
-25000 ≤ Lh, Rh ≤ 25000 |
単位: μm (= 1/1000 mm) |
Ch ≥ (Lh + Rh) / 2 |
-45000 ≤ θr ≤ 45000 |
単位: 1/1000度 |
1 ≤ Nu ≤ 70 |
単位: 個 |
0 ≤ Tm ≤ 60000 |
単位: ms |
出力の補足
以下の出力の場合は、C軸 1mm, L軸 -0.1mm, R軸 1.1mm, θ軸 12.1度,射出する玉の数 2個,待ち時間 1500ms
1000,-100,1100,12100,2,1500
入力例
0 250 300 700 0 730 -310 690 300 950 0 930 -300 950 310 450 0 460 -320 440
0 250 310 710 0 700 -300 700 310 930 0 940 -310 920 300 460 0 470 -310 440
0 250 290 730 0 710 -320 720 300 920 0 950 -300 940 320 440 0 460 -300 450
0 250 300 690 0 700 -300 700 320 940 0 930 -320 930 300 450 0 470 -320 450
0 250 320 700 0 690 -300 710 300 950 0 950 -300 950 310 430 0 460 -300 460
出力例
1000,500,500,0,10,10000
1000,1500,0,-1000,10,20000;
500,300,300,0,10,15000
500,-100,-500,-12000,10,15000;
0,0,0,0,10,10000
1000,1500,0,15000,10,20000;
0,0,0,0,10,10000
1000,1500,0,15000,10,20000;
0,0,0,0,10,10000
1000,1500,-1100,15000,10,20000
採点
- 全テストケースでの得点の合計がその提出の得点となります。
- 解答は5問目まで必要です。
- 出力における一番最後の半角セミコロン “;” はあってもなくても構いません。
※入力データファイルをダウンロードして解答してください。
得点:2450点
Q1の入力データファイルをダウンロード