CF134A Average Numbers 題解
阿新 • • 發佈:2021-12-21
CF134A Average Numbers 題解
。
Content
有 \(n\) 個數 \(a_1,a_2,a_3,...,a_n\)。試求出使得 \(a_i\) 與其他所有整數的算術平均值相等的所有 \(i\)。
資料範圍:\(2\leqslant n\leqslant 2\times10^5,1\leqslant a_i\leqslant 1000\)。
Solution
我們可以將其轉化為:求出能滿足 \(a_i=\dfrac{\sum\limits_{j=1}^na_j-a_i}{n-1}\) 的所有 \(i\)。直接在數列中掃一遍看能不能滿足這個條件即可。注意精度問題,需要將 \(a_i\) 開成高精度的 \(\texttt{double}\)
Code
#include <cstdio> #include <algorithm> using namespace std; int n, ans[200007]; double s, a[200007]; int main() { scanf("%d", &n); for(int i = 1; i <= n; ++i) { scanf("%lf", &a[i]); s += a[i]; } for(int i = 1; i <= n; ++i) if(a[i] == (s - a[i]) / (n - 1)) ans[++ans[0]] = i; for(int i = 0; i <= ans[0]; ++i) { printf("%d", ans[i]); if(!i) puts(""); else printf(" "); } return 0; }