ABC 002の問題を解答していきます。
A問題
解答
1 2 3 4 5 6 |
x,y = input().split() #x,yに入力値を代入 if int(x) > int(y): #①xよりyが大きい場合 print(x) #xを出力 else: ①以外の場合、yを出力 print(y) |
xとyの値が同じ時はどうするかと気になりましたが、
問題文を読んでみると2つの整数は異なることが保証されていました。
今回の問題はこのままで良さそうです。
メモ
こちらのコードだと正しく解答できませんでした。
1 2 3 4 5 6 |
x,y = input().split() if x > y: print(x) else: print(y) |
1行目のinput関数で代入されたxとyの値は文字列型となっています。
数値型へ変換するint関数を忘れていたのが原因でした。
int型に変換してから大小比較を行うことで正解にはなりましたが、
文字列のままでもエラーにはならず実行結果は出力されました。
ということは何かを比較しているとは思うのですが、一体何を比較しているのでしょうか?
少し調べてみたのですが、わからなかったので今後の宿題とします。
C問題
方針
問題文のヒントにある通り、三角形の面積は頂点の一つが原点にある場合は|ad-bc|/2で求めることができます。
3組の座標の内1つを原点に移動し、移動した分だけ他の2つの組も移動させた後で、ヒントにある数式の通りに計算することで答えを求めることができます。
解答
1 2 3 4 5 6 7 8 9 |
coordinates= list(map(int, input().split())) a = coordinates[2] - coordinates[0] b = coordinates[3] - coordinates[1] c = coordinates[4] - coordinates[0] d = coordinates[5] - coordinates[1] ans = abs(a*d-b*c)/2 print(ans) |
コメント