LQDOJ CUP 2022 - Round 1 - SUMARR

Xem PDF




Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho một dãy \(n\) số nguyên dương \(a_0, a_1, \ldots, a_{n-1}\).

Với mọi \(U\) thỏa mãn \(0 \leq U < n\): Tính tổng \(a_i \cdot a_j\) với mọi \(0\leq i,j < n, (i\text{ or }j) \leq U\).

Toán tử or ở đây biểu thị cho toán tử nhị phân OR.

Input

  • Dòng đầu chứa số nguyên duy nhất là \(n\) \((1 \leq n \leq 2 \cdot 10^5)\), độ dài mảng \(a\).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_0, a_1, \ldots, a_{n-1}\) \((0 < a_{i} \leq 10^7)\).

Output

  • In ra \(n\) số nguyên dương trên cùng một dòng duy nhất. Số thứ \(i\) là đáp án cho \(U = i - 1\) khi chia dư cho \(10^9 + 7\).

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(n \le 500\).
  • Subtask \(2\) (\(30\%\) số điểm): \(n \le 10^4\).
  • Subtask \(3\) (\(40\%\) số điểm): Không có ràng buộc gì thêm.

Examples

Test 1

Input
3
1 2 8
Output
1 9 89

Test 2

Input
5
2 3 5 5 3
Output
4 25 70 225 246

Test 3

Input
10
19 18 16 14 16 17 8 15 9 10
Output
361 1369 2233 4489 5353 8020 9412 15129 15552 16896

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: