Bedao Mini Contest 25 - Trọng số lẻ

Xem dạng PDF

Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một mảng ~a~ gồm ~n~ số nguyên dương ~a_1, a_2, ..., a_n~. Gọi trọng số của mảng là tổng của các (~a_i + a_j~) ~(1 \le i \le j \le n~) thỏa mãn ~a_i + a_j~ lẻ. Bạn hãy tìm trọng số của mảng ~a~.

Vì trọng số có thể rất lớn, hãy in ra kết quả ~\mod 10^9+7~.

Input

Dòng đầu tiên gồm số nguyên dương ~n~ (~1 \le n \le 10^6~).

Dòng thứ hai gồm ~n~ số nguyên dương ~a_1, a_2, ..., a_n~ (~1 \le a_i \le 10^9~).

Output

Gồm một dòng duy nhất là trọng số của mảng ~a~ ~\mod 10^9+7~.

Scoring

Subtask Điểm Giới hạn
1 ~40\%~ ~N \le 10^3~
2 ~60\%~ Không có giới hạn gì thêm

Sample Input 1

5
3 7 2 1 9

Sample Output 1

28

Sample Input 2

5
6 8 2 2 10

Sample Output 2

0

Notes

Trong test ví dụ đầu tiên, các cặp số thỏa mãn là (~1, 3~), (~2, 3~), (~3, 4~), (~3, 5~). Vậy trọng số là ~(a_1 + a_3) + (a_2 + a_3) + (a_3 + a_4) + (a_3 + a_5)~ = ~3 + 2 + 7 + 2 + 2 + 1 + 2 + 9 = 28~.

Trong test ví dụ thứ hai, không có bất kì cặp nào có tổng là số lẻ nên trọng số của mảng ~[6, 8, 2, 2, 10]~ là ~0~.


Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -2
    okokokkokk  đã bình luận lúc 20, Tháng 6, 2025, 9:28

    include <bits/stdc++.h>

    using namespace std; typedef long long ll;

    int main() { iosbase::syncwith_stdio(false); cin.tie(NULL);

    ll n, tong = 0, kq = 0;
    const ll mod = 1e9 + 7;
    cin >> n;
    
    vector<ll> a(n), chan, le;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        if (a[i] % 2 == 0)
            chan.push_back(a[i]);
        else
            le.push_back(a[i]);
    }
    
    if (!chan.empty() && !le.empty()) {
        ll len = chan.size();
        for (ll i : chan)
            tong = (tong % mod + i % mod) % mod;
        for (ll x : le) {
            ll temp = (tong + (len * x) % mod) % mod;
            kq = (kq + temp) % mod;
        }
    }
    
    cout << kq;
    return 0;
    

    }


  • -1
    khang755332  đã bình luận lúc 16, Tháng 4, 2025, 7:34

    .


  • -1
    truongcanhchan  đã bình luận lúc 17, Tháng 2, 2025, 6:46 chỉnh sửa

    Cuối cùng sau n lần submit, tôi đã giải được bài này rồi GGGGGGGGG


  • 4
    phamhaidang123654  đã bình luận lúc 12, Tháng 11, 2024, 6:41

    n=int(input()) m=list(map(int,input().split())) dayle=[] daychan=[] for k in m: if k%2==0: daychan.append(k) else: dayle.append(k) tongchan=sum(x for x in daychan)len(dayle) tongle=sum(x for x in dayle)len(daychan) print(tongchan+tongle)


  • -15
    Helectric  đã bình luận lúc 31, Tháng 10, 2024, 7:09

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -9
    haianh11112013  đã bình luận lúc 26, Tháng 10, 2024, 7:17

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -5
    honglamtapcode  đã bình luận lúc 18, Tháng 10, 2024, 3:42

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


  • -22
    kietjumper  đã bình luận lúc 4, Tháng 10, 2024, 14:36 sửa 3

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.