Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- int phi (int n) {
- int result = n;
- for (int i=2; i*i<=n; ++i)
- if (n % i == 0) {
- while (n % i == 0)
- n /= i;
- result -= result / i;
- }
- if (n > 1)
- result -= result / n;
- return result;
- }
- int main() {
- std::ios_base::sync_with_stdio(false);
- std::cin.tie(NULL);
- int N, M, MOD;
- std::cin >> N >> M >> MOD;
- int q = phi(MOD);
- int *a = new int[N + 1];
- int *x = new int[M];
- for (int i = N; i >= 0; --i) {
- std::cin >> a[i];
- a[i] %= MOD;
- }
- for (int i = 0; i < M; ++i) {
- std::cin >> x[i];
- x[i] %= MOD;
- }
- int *mas = new int[q];
- for (int j = 0; j < M; j++) {
- int temp = 1, sum = 0, k = 0;
- for (int i = 0; i <= N; ++i) {
- if (i < q) {
- mas[i] = temp;
- sum = (sum + (a[i] * temp) % MOD) % MOD;
- temp = (temp * x[j]) % MOD;
- } else {
- sum = (sum + (a[i] * mas[k]) % MOD) % MOD;
- k++;
- if (k == q) {
- k = 0;
- }
- }
- }
- std::cout << sum << std::endl;
- }
- delete [] a;
- delete [] mas;
- delete [] x;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement