結果
問題 | No.3072 Sum of sqrt(x) |
ユーザー | 259_Momone |
提出日時 | 2020-09-12 23:01:59 |
言語 | C++17 (gcc 12.3.0 + boost 1.83.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,478 bytes |
コンパイル時間 | 2,305 ms |
コンパイル使用メモリ | 203,924 KB |
実行使用メモリ | 19,968 KB |
最終ジャッジ日時 | 2024-06-10 19:05:54 |
合計ジャッジ時間 | 38,973 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | WA | - |
testcase_01 | AC | 1 ms
5,376 KB |
testcase_02 | WA | - |
testcase_03 | AC | 3 ms
5,376 KB |
testcase_04 | AC | 3 ms
5,376 KB |
testcase_05 | WA | - |
testcase_06 | AC | 3 ms
5,376 KB |
testcase_07 | WA | - |
testcase_08 | AC | 233 ms
19,712 KB |
testcase_09 | AC | 610 ms
19,712 KB |
testcase_10 | AC | 1,241 ms
19,712 KB |
testcase_11 | WA | - |
testcase_12 | WA | - |
testcase_13 | WA | - |
testcase_14 | WA | - |
testcase_15 | WA | - |
testcase_16 | WA | - |
testcase_17 | WA | - |
testcase_18 | WA | - |
testcase_19 | WA | - |
testcase_20 | WA | - |
testcase_21 | WA | - |
testcase_22 | WA | - |
testcase_23 | WA | - |
testcase_24 | WA | - |
testcase_25 | WA | - |
testcase_26 | WA | - |
testcase_27 | WA | - |
testcase_28 | WA | - |
testcase_29 | WA | - |
ソースコード
#include<bits/stdc++.h> int main(){ using namespace std; // my fast in constexpr unsigned long buf_size = 3UL << 18UL; char buffer[buf_size]; fread(buffer, 1, buf_size, stdin); unsigned long tmp_buf = 0; const auto &read = [&tmp_buf, &buffer] { const auto &M_reread_from_stdin = [&] { ptrdiff_t len = buf_size - tmp_buf; if (len > tmp_buf) return; memcpy(buffer, buffer + tmp_buf, len); char *tmp = buffer + len; fread(tmp, 1, buf_size - len, stdin); tmp_buf = 0; }; unsigned long ret; from_chars_result tmp{}; do { if (__builtin_expect(buf_size <= tmp_buf + 32, 0)) M_reread_from_stdin(); tmp = from_chars(begin(buffer) + tmp_buf, end(buffer), ret); tmp_buf = tmp.ptr - buffer + 1; } while (tmp.ec != errc{}); return ret; }; const auto &scan = [scan_impl = [&read](auto &x) -> decltype(auto) { return x = read(); }]( auto &...args) { tuple<decltype(args)...>{scan_impl(args)...}; }; // fast in kokomade unsigned long N; scan(N); vector<long double> v(N + 1); for(unsigned long i{1}; i <= N; ++i)v[i] = sqrtl(read()); for(unsigned long i{1}; i <= N; i <<= 1UL)for(unsigned long j{2 * i}; j <= N; j += 2 * i)v[j] += v[j - i]; for(unsigned long i{1}; i <= N; ++i)printf("%18.Lf\n", v[i] += v[i & (i - 1)]); return 0; }