Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
32256 Aquizahv 【S】T1 C++ 通过 100 205 MS 1420 KB 1232 2024-09-08 13:18:33

Tests(20/20):


#include <bits/stdc++.h> using namespace std; #define ll long long #define MOD 998244353 const int N = 1e5 + 5; int n, m, k; int a[N], b[N], cnt[N]; ll ans; ll madd(ll x, ll y) { return (x + y) % MOD; } ll mmul(ll x, ll y) { return x * y % MOD; } ll check(int x, int y) { memset(cnt, 0, sizeof(cnt)); cnt[0] = 1; int sum = 0; ll res1 = 0; for (int i = 1; i <= n; i++) { sum += a[i]; if (sum >= x) res1 = madd(res1, cnt[sum - x]); cnt[sum]++; } memset(cnt, 0, sizeof(cnt)); cnt[0] = 1; sum = 0; ll res2 = 0; for (int i = 1; i <= m; i++) { sum += b[i]; if (sum >= y) res2 = madd(res2, cnt[sum - y]); cnt[sum]++; } return mmul(res1, res2); } int main() { cin >> n >> m >> k; for (int i = 1; i <= n; i++) scanf("%d", a + i); for (int i = 1; i <= m; i++) scanf("%d", b + i); for (int i = 1; i * i <= k; i++) if (k % i == 0) { ans = madd(ans, check(i, k / i)); if (i * i != k) ans = madd(ans, check(k / i, i)); } cout << ans << endl; return 0; }


测评信息: