QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#532926 | #1060. 快速查询 | vorDeal | 0 | 74ms | 4832kb | C++20 | 1.9kb | 2024-08-25 14:39:05 | 2024-08-25 14:39:05 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int p = 1e7 + 19;
int n, q, t, sum, ans, stv, add, mul;
int a[105], b[105], op[100005], sub[100005], val[100005];
map<int, int> mdf;
int inv(int x)
{
int res = 1;
for (int i = p - 2; i > 0; x = 1ll * x * x % p, i >>= 1)
if (i & 1)
res = 1ll * res * x % p;
return res % p;
}
void solve(int i)
{
if (op[i] == 1)
{
sum -= 1ll * (mdf.count(sub[i]) ? mdf[sub[i]] : stv) * mul % p;
sum += val[i] - add, sum %= p;
mdf[sub[i]] = 1ll * ((val[i] - add) % p + p) % p * inv(mul) % p;
}
else if (op[i] == 2)
{
add += val[i], add %= p;
sum += 1ll * val[i] * n % p, sum %= p;
}
else if (op[i] == 3 && val[i] == 0)
sum = stv = add = 0, mdf.clear(), mul = 1;
else if (op[i] == 3 && val[i] == 1)
{
mul = 1ll * mul * val[i] % p;
add = 1ll * add * val[i] % p;
sum = 1ll * sum * val[i] % p;
}
else if (op[i] == 4)
{
add = 0, mul = 1, mdf.clear();
stv = val[i], sum = 1ll * val[i] * n % p;
}
else if (op[i] == 5)
ans += 1ll * (mdf.count(sub[i]) ? mdf[sub[i]] : stv) * mul % p + add, ans %= p;
else if (op[i] == 6)
ans += sum, ans %= p;
return;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
cin >> n >> q;
for (int i = 1; i <= q; i++)
{
cin >> op[i];
if (op[i] == 1 || op[i] == 5)
cin >> sub[i];
if (op[i] <= 4)
cin >> val[i], val[i] = (val[i] % p + p) % p;
}
cin >> t;
for (int i = 1; i <= t; i++)
cin >> a[i] >> b[i];
for (int i = 1; i <= t; i++)
for (int j = 1; j <= q; j++)
solve((a[i] + 1ll * j * b[i]) % q + 1);
cout << (ans + p) % p;
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 74ms
memory: 4832kb
input:
452026 95958 1 285703 217433997 1 11660 355946119 1 154677 958212086 1 45777 559001183 1 149425 708949937 1 199039 -627813211 1 421465 878181683 1 18566 -840518154 1 268546 -956473636 1 6627 -168874651 1 165349 796846652 1 389787 -241387034 2 856579071 2 776291767 1 361873 220652502 1 34945 3586417 ...
output:
6063486
result:
wrong answer 1st lines differ - expected: '7032812', found: '6063486'
Subtask #2:
score: 0
Skipped
Dependency #1:
0%