結果
問題 |
No.1618 Convolution?
|
ユーザー |
|
提出日時 | 2021-07-31 13:12:00 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 181 ms / 2,000 ms |
コード長 | 891 bytes |
コンパイル時間 | 1,502 ms |
コンパイル使用メモリ | 171,268 KB |
実行使用メモリ | 12,672 KB |
最終ジャッジ日時 | 2024-09-16 09:27:50 |
合計ジャッジ時間 | 7,309 ms |
ジャッジサーバーID (参考情報) |
judge6 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 15 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; using Vl = vector<ll>; int main () { int N; cin >> N; Vl A(N); Vl B(N); for (int i = 0; i < N; i ++) { cin >> A[i]; } for (int i = 0; i < N; i ++) { cin >> B[i]; } Vl A1(N + 1); Vl B1(N + 1); Vl A2(N + 1); Vl B2(N + 1); A1[0] = B1[0] = A2[0] = B2[0] = 0; for (int i = 1; i <= N; i ++) { A1[i] = A1[i - 1] + A[i - 1]; B1[i] = B1[i - 1] + B[i - 1]; A2[i] = A2[i - 1] + i * A[i - 1]; B2[i] = B2[i - 1] + i * B[i - 1]; } for (int i = 1; i <= 2 * N; i ++) { int al = min(N, i - 1); int bt = max(1, i - N) - 1; ll a = i * (A1[al] - A1[bt]) - (A2[al] - A2[bt]); ll b = i * (B1[al] - B1[bt]) - (B2[al] - B2[bt]); cout << a + b << (i < N * 2 ? " " : ""); } cout << endl; }