Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Created by daryazvyaginceva on 15.05.18.
- //
- #include <iostream>
- long long mod = 998244353;
- long long p[3000], q[3000], s[3000];
- long long c[3000];
- int n, m;
- using namespace std;
- int main() {
- //freopen("input", "r", stdin);
- cin >> n >> m;
- for (int i = 0; i <= n; i++) {
- cin >> p[i];
- }
- for (int i = 0; i <= m; i++) {
- cin >> q[i];
- }
- int last = 0;
- //слжение
- // cout << (p[0] + q[0]) % mod<<endl;
- for (int i = 0; i <= max(n, m); i++) {
- c[i] = (p[i] + q[i]) % mod;
- if (c[i] != 0) last = i;
- }
- cout << last << endl;
- for (int i = 0; i <= last; i++) {
- cout << c[i] << " ";
- }
- cout << endl;
- last = 0;
- //умножение
- for (int i = 0; i <= n + m; i++) {
- c[i] = 0;
- for (int j = 0; j <= i; j++) {
- c[i] = (c[i] + (p[j] * q[i - j]) % mod) % mod;
- }
- if (c[i] != 0) last = i;
- }
- cout << last << endl;
- for (int i = 0; i <= last; i++) {
- cout << c[i] << " ";
- }
- cout << endl;
- //деление
- // last = 0;
- for (int i = 0; i < 1000; i++) c[i] = 0;
- s[0] = 1;
- //cout << c[0] << " ";
- for (int i = 1; i < 1000; i++) {
- s[i] = 0;
- for (int j = 0; j < i; j++) {
- s[i] = (s[i] - (s[j] * q[i - j]) % mod) % mod;
- if (s[i]<0) s[i]+=mod;
- }
- }
- // cout << s[0]<<" ";
- for (int i = 0; i < 1000; i++) {
- c[i] = 0;
- for (int j = 0; j <= i; j++) {
- c[i] = (c[i] + (p[j] * s[i - j]) % mod) % mod;
- if (c[i]<0) c[i]+=mod;
- }
- }
- for (int i = 0; i <1000; i++) {
- cout << c[i] << " ";
- }
- cout << endl;
- //cout << c[999];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement