Official

B - Bird Watching Editorial by physics0523


問題原案: admin

for ループを活用することで、バケットソートの要領で次のものを管理すればこの問題に正解できます。

  • 種類 \(i\) の鳥の大きさの合計 \(S_i\)
  • 種類 \(i\) の鳥の数 \(C_i\)

各種類ごとの答えは \(S_i/C_i\) と求められます。
出力の桁数不足に注意してください。

実装例 (C++):

#include<bits/stdc++.h>

using namespace std;

int main(){
  int n,m;
  cin >> n >> m;
  vector<int> S(m+1,0);
  vector<int> C(m+1,0);
  for(int i=0;i<n;i++){
    int a,b;
    cin >> a >> b;
    S[a]+=b;
    C[a]++;
  }
  for(int i=1;i<=m;i++){
    double oup=S[i];
    oup/=C[i];
    cout << fixed << setprecision(12) << oup << "\n";
  }
  return 0;
}

posted:
last update: