名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

ABC 026 B - N重丸

※タイトルミスっちゃった

回答

Submission #445134 - AtCoder Beginner Contest 026 | AtCoder


大きい順にソートしておく.
そして,偶数回の時足して,奇数回のとき引いて~ みたいな計算で出てくる.

入出力例1が非常に参考になる.

入力例1
3
1
2
3
出力例1
18.8495559215
以上のような入力だと、問題文に与えられた図のような色の塗られ方になります。

この際、赤い部分の面積は、 (32−22+12)×π≒18.8495559215 となります。

と,ここの一番最後の計算方法が参考になった.それですぐ解けた.助かる助かる.*1

import math
 
n = int(input())
li = [int(input()) for _ in range(n)]
li.sort()
li = li[::-1]
rsum = 0
for i in range(n):
    if i % 2 == 0:
        rsum += li[i] ** 2
    else:
        rsum -= li[i] ** 2
print(rsum * math.pi)

*1: 上付き文字は<sup>上付き文字</sup>みたいにしないとダメなのね, 上付き、下付き文字を表示する:HTMLタグ辞典 - HTMLタグボード