QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#573101 | #7128. Huge products | Urd | WA | 0ms | 3728kb | C++17 | 1.1kb | 2024-09-18 17:21:53 | 2024-09-18 17:21:54 |
Judging History
answer
#include <bits/stdc++.h>
#define ALL(v) begin(v), end(v)
using i64 = int64_t;
const int kMod = 1E9 + 7;
auto S(int n) -> int { return i64{n + 1} * n / 2 % kMod; }
int ans;
i64 a, b, c, d, e;
std::array<i64, 11> v;
auto main() -> int {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr), std::cout.tie(nullptr);
for (int i = 1; i <= 10; ++i) std::cin >> v[i];
a = v[2] + 2 * v[4] + 3 * v[8], b = v[6], c = v[10];
d = v[3] + 2 * v[9], e = v[5];
ans = (a + 1) % kMod * ((b + d + 1) % kMod) % kMod * ((c + e + 1) % kMod) %
kMod;
if (c - e) {
(ans += std::min(c, e) % kMod *
((std::max(c, e) - std::min(c, e) - 1) % kMod) % kMod *
((b + d + 1) % kMod) % kMod) %= kMod;
}
if (b - d) {
(ans += std::min(b, d) % kMod *
((std::max(b, d) - std::min(b, d) - 1) % kMod) *
((c + e + 1) % kMod) % kMod) %= kMod;
}
(ans += S(std::min(c, e) % kMod) * ((b + d + 1) % kMod) % kMod) %= kMod;
(ans += S(std::min(b, d) % kMod) * ((c + e + 1) % kMod) % kMod) %= kMod;
std::cout << i64{ans} * (v[7] + 1) % kMod << '\n';
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3608kb
input:
0 1 0 1 0 0 0 1 0 0
output:
7
result:
ok 1 number(s): "7"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3688kb
input:
0 1000000000 100000000 0 0 0 0 0 0 0
output:
400000001
result:
ok 1 number(s): "400000001"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3668kb
input:
5 1 1 5 0 0 3 4 4 0
output:
960
result:
ok 1 number(s): "960"
Test #4:
score: -100
Wrong Answer
time: 0ms
memory: 3728kb
input:
0 3 4 0 1 0 2 2 0 2
output:
615
result:
wrong answer 1st numbers differ - expected: '630', found: '615'