結果
問題 | No.553 AlphaCoder Rating |
ユーザー |
![]() |
提出日時 | 2018-10-30 00:42:43 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 20 ms / 1,500 ms |
コード長 | 1,095 bytes |
コンパイル時間 | 2,044 ms |
コンパイル使用メモリ | 196,428 KB |
最終ジャッジ日時 | 2025-01-06 15:05:12 |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 12 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:46:14: warning: ‘sum2’ may be used uninitialized [-Wmaybe-uninitialized] 46 | sum2 += pow(0.9, i); | ~~~~~^~~~~~~~~~~~~~ main.cpp:43:21: note: ‘sum2’ was declared here 43 | double sum = 0, sum2; | ^~~~
ソースコード
#include <bits/stdc++.h>using namespace std;using i64 = int64_t;using vi = vector<i64>;using vvi = vector<vi>;double F[101];double f[101];void build() {double sum1 = 0, sum2 = 0;for (int i = 1; i <= 100; i++) {sum1 += pow(0.81, i);sum2 += pow(0.9, i);F[i] = sqrt(sum1) / sum2;// cout << sqrt(sum1) / sum2 << endl;}double Finf = 0.22941573387056196642;for (int i = 1; i <= 100; i++) {f[i] = (F[i] - Finf) / (F[1] - Finf) * 1200;}}double ginv(double y) {return log2(y) * 800;}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);cout.setf(ios::fixed);cout.precision(20);build();int n;cin >> n;vi rs(n);for (int i = 0; i < n; i++) {cin >> rs[i];}double sum = 0, sum2;for (int i = 1; i <= n; i++) {sum += pow(2, rs[i - 1] / 800.0) * pow(0.9, i);sum2 += pow(0.9, i);}double rating = ginv(sum / sum2) - f[n];// cout << rating << endl;cout << i64(rating + 0.5) << endl;}