SuperCon 2009 予選問題および認定問題 †問1 (スーパーコン3級認定問題 2009年度版) †数直線上に同じ長さの区間がいくつか与えられたとき,それら全体が覆う部分の長さを計算するプログラムを作成して下さい. 注:この例では端点の座標値が負である区間もありますが,実際の入力においてすべての区間の端点は非負です.詳しくは「問1についての詳細説明」をご覧下さい. 問2 (スーパーコン2級認定問題 2009年度版) †平面上にx軸かy軸に平行な同じ長さの線分がいくつか与えられたとき,それらの交差として現れる点の数を計算するプログラムを作成して下さい. 問3 (スーパーコン1級認定問題 2009年度版 兼 スーパーコン2009予選問題) †平面上に辺の長さがすべて同じで,どの辺もx軸かy軸に平行であるような正方形がいくつか与えられたとき,それら全体が覆う部分の面積を計算するプログラムを作成して下さい. 注意 †すべての問いに共通する事項 †
詳細説明 †問1についての詳細説明 †入力は以下のような形式で与えられます. n d a1 a2 a3 ... an はじめの行にあるnは入力に現れる区間の数です.また,dは入力に現れる各区間の長さです.その後に続くn行にはそれぞれ1つの区間の左端点の座標が格納され,例えば「a1」はその区間の左端点がa1であることを表します.すなわち,その行は[a1, a1+d]という区間に対応します. 次の条件を入力は必ず満たしています.
問2についての詳細説明 †入力は以下のような形式で与えられます. n m d a1 b1 a2 b2 a3 b3 ... an bn c1 d1 c2 d2 c3 d3 ... cm dm はじめの行にあるnは入力に現れる線分でx軸に平行なものの数です.そして,mは入力に現れる線分でy軸に平行なものの数です.また,dは入力に現れる各線分の長さを表します.その後に続くn行にはそれぞれx軸に平行な線分の左端点が格納され,例えば「a1 b1」はその線分の左端点が (a1, b1) であり,もう一方の端点が (a1+d, b1) であることを表します.最後のm行はそれぞれy軸に平行な線分の下端点であり,例えば「c1 d1」はその線分の下端点が (c1, d1) であり,もう一方の端点が (c1, d1+d) であることを表します. 次の条件を入力は必ず満たしています.
ただし,x軸に平行な線分とy軸に平行な線分が端点を共有することはありえます.出力として数えるべき交差は線分の内部どうしの交差,線分の内部と端点の交差,線分の端点どうしの交差のすべてです. 問3についての詳細説明 †入力は以下のような形式で与えられます. n d a1 b1 a2 b2 a3 b3 ... an bn はじめの行にあるnは入力に現れる正方形の数です.また,dは各正方形の1辺の長さです.その後に続くn行にはそれぞれ1つの正方形の左下の頂点が格納され,例えば「a1 b1」はその正方形の左下の頂点が (a1, b1) であることを表します.このとき,右下の頂点は (a1+d, b1),左上の頂点は (a1, b1+d),右上の頂点は (a1+d, b1+d) になります. 次の条件を入力は必ず満たしています.
ただし,正方形どうしが重なりあったり,頂点や辺の一部を共有することはありえます. 改訂履歴 †2009/06/03:問1用雛形プログラムのコメント部分にプログラムの説明を追加.コメント部分以外には変更なし. |