結果
問題 | No.896 友達以上恋人未満 |
ユーザー |
![]() |
提出日時 | 2019-09-27 22:52:23 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 1,423 ms / 3,500 ms |
コード長 | 1,399 bytes |
コンパイル時間 | 705 ms |
コンパイル使用メモリ | 77,572 KB |
実行使用メモリ | 134,520 KB |
最終ジャッジ日時 | 2024-09-25 00:23:33 |
合計ジャッジ時間 | 5,105 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 7 |
コンパイルメッセージ
main.cpp: In function 'int main()': main.cpp:64:16: warning: 'a' may be used uninitialized [-Wmaybe-uninitialized] 64 | a = (a * m0 + m1) & mask; | ~~^~~~ main.cpp:54:8: note: 'a' was declared here 54 | ll a, b; | ^
ソースコード
#include <iostream>#include <vector>#include <string>#include <algorithm>#include <cstdio>#include <cstring>#include <cmath>using namespace std;using ll = long long;ll p[1 << 24];int main() {ios::sync_with_stdio(false);cin.tie(0);int m, n;cin >> m >> n;int m0, m1, m2, m3;cin >> m0 >> m1 >> m2 >> m3;int MOD;cin >> MOD;ll mask = MOD - 1;vector<int> x0(m);for (int i = 0; i < m; i++) {cin >> x0[i];}ll x = x0.back(), y;for (int i = 0; i < m; i++) {cin >> y;p[x0[i]] += y;}for (int i = m; i < n; i++) {x = (x * m0 + m1) & mask;y = (y * m2 + m3) & mask;p[x] += y;}for (int j = 1; j < MOD; j++) {ll s = p[0];for (int i = j; i < MOD; i += j) {s += p[i];}p[j] = s;}vector<int> a0(m);for (int i = 0; i < m; i++) {cin >> a0[i];}ll r = 0;ll a, b;for (int i = 0; i < m; i++) {a = a0[i];cin >> b;ll c = a * b;ll t = p[a] - (c < MOD ? p[a * b] : p[0]);cout << t << '\n';r ^= t;}for (int i = m; i < n; i++) {a = (a * m0 + m1) & mask;b = (b * m2 + m3) & mask;ll c = a * b;r ^= p[a] - (c < MOD ? p[a * b] : p[0]);}cout << r << endl;return 0;}