Untitled

 avatar
unknown
plain_text
5 months ago
1.1 kB
5
Indexable
#include <iostream>
#include <vector>
#define MOD 998244353
using namespace std;

// Function to calculate modular inverse using Fermat's Little Theorem
long long modInverse(long long a, long long m)
{
    long long res = 1, p = m - 2;
    while (p > 0)
    {
        if (p % 2 == 1)
            res = (res * a) % m;
        a = (a * a) % m;
        p /= 2;
    }
    return res;
}

int main()
{
    int N;
    cin >> N;
    vector<long long> red(N), green(N);
    for (int i = 0; i < N; i++)
    {
        cin >> red[i];
    }
    for (int i = 0; i < N; i++)
    {
        cin >> green[i];
    }

    long long expected_weight_sum = 0;
    for (int i = 0; i < N; i++)
    {
        expected_weight_sum = (expected_weight_sum + red[i] + green[i]) % MOD;
    }
    expected_weight_sum = (expected_weight_sum * modInverse(2, MOD)) % MOD;

    long long N_inv = modInverse(N, MOD);

    for (int K = 1; K <= N; K++)
    {
        long long result = (expected_weight_sum * K % MOD) * N_inv % MOD;
        cout << result << " ";
    }
    cout << endl;
    return 0;
}
Editor is loading...
Leave a Comment