結果

問題 No.896 友達以上恋人未満
コンテスト
ユーザー zelda_master
提出日時 2026-08-23 19:35:49
言語 C++14
(gcc 15.2.0 + boost 1.90.0)
コンパイル:
g++-15 -O2 -lm -std=c++14 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
RE  
実行時間 -
コード長 1,222 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 329 ms
コンパイル使用メモリ 74,204 KB
実行使用メモリ 23,168 KB
最終ジャッジ日時 2026-08-23 19:36:11
合計ジャッジ時間 2,628 ms
ジャッジサーバーID
(参考情報)
judge3_1 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 1 RE * 6
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <iostream>
#include <cstdio>

using namespace std;

const int N = 1000010;

int n, m, mulX, addX, mulY, addY, MOD, x[N], y[N], a[N], b[N], z[N], ans[N];

int main() {
    // freopen("friend.in", "r", stdin);
    // freopen("friend.out", "w", stdout);

    scanf("%d%d%d%d%d%d%d", &m, &n, &mulX, &addX, &mulY, &addY, &MOD);
    for (int i = 1; i <= m; ++i) scanf("%d", &x[i]);
    for (int i = 1; i <= m; ++i) scanf("%d", &y[i]);
    for (int i = 1; i <= m; ++i) scanf("%d", &a[i]);
    for (int i = 1; i <= m; ++i) scanf("%d", &b[i]);
    
    for (int i = 0; i < MOD; ++i) z[i] = 0;
    for (int i = m + 1; i <= n; ++i) {
        x[i] = (x[i - 1] * mulX + addX) % MOD;
        y[i] = (y[i - 1] * mulY + addY) % MOD;
        a[i] = (a[i - 1] * mulX + addX + MOD - 1) % MOD + 1;
        b[i] = (b[i - 1] * mulY + addY + MOD - 1) % MOD + 1;
    }
    for (int i = 1; i <= n; ++i) z[x[i]] += y[i];

    int zor = 0;
    for (int i = 1; i <= n; ++i) {
        for (int j = a[i]; j < N; j += a[i]) ans[i] += z[j];
        for (int j = a[i] * b[i]; j < N; j += a[i] * b[i]) ans[i] -= z[j];
        zor ^= ans[i];
    }

    for (int i = 1; i <= m; ++i) printf("%d\n", ans[i]);
    printf("%d\n", zor);

    return 0;
}
0