公式
A - スピーカーの音量 / Speaker Volume 解説
by
A - スピーカーの音量 / Speaker Volume 解説
by
physics0523
初心者の方へ
- AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
- また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
- C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。
- Python入門 AtCoder Programming Guide for beginners (APG4bPython) は、競技プログラミングのための Python 入門用コンテンツです。
問題の要求通り、 \(\displaystyle \frac{V_i}{|X_i-P|}\) を全ての \(i\) について足し合わせればよいです。
但し、問題文中にも注意があるように、 \(X_i=P\) なる \(i\) については計算をスキップしなければゼロ除算を起こしてしまうので注意が必要です。
実数を出力することが要求される問題では、計算および出力に十分な桁数を確保する必要があります。
実装例では long double 型を用いており、小数点以下第 \(12\) 位まで必ず出力するように設定してあります。
実装例 (C++):
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
using ld=long double;
int main(){
ll N,P;
cin >> N >> P;
ld res=0.0;
for(ll i=0;i<N;i++){
ll X,V;
cin >> X >> V;
if(X==P){continue;}
ld del=((ld)V)/((ld)abs(X-P));
res+=del;
}
cout << fixed << setprecision(12) << res << "\n";
return 0;
}
投稿日時:
最終更新:
