QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#615005 | #1882. Drunkards | Mafuyu | WA | 0ms | 3608kb | C++14 | 917b | 2024-10-05 17:21:04 | 2024-10-05 17:21:05 |
Judging History
answer
#include <bits/stdc++.h>
#define int long long
#define pos_ (pos + 5000)
using namespace std;
const int N = 5010, M = 10010, MOD = 1e9 + 7;
int n, p;
int f[2][M], a[N];
int quick_power(int a, int b)
{
int res = 1;
while (b)
{
if (b & 1) (res *= a) %= MOD;
(a *= a) %= MOD;
b >>= 1;
}
return res;
}
signed main()
{
cin >> n >> p;
for (int i = 1; i <= n; i ++ ) cin >> a[i];
int qp = quick_power(100, MOD - 2);
f[0][5000] = 1;
for (int i = 1; i <= n; i ++ )
{
for (int pos = -n; pos <= n; pos ++ ) f[i & 1][pos_] = f[(i - 1) & 1][pos_];
for (int pos = -n; pos <= n; pos ++ )
f[i & 1][pos_] = f[(i - 1) & 1][pos_ - a[n - i + 1]] * (100 - p) % MOD * qp % MOD,
(f[i & 1][pos_] += f[(i - 1) & 1][pos_] * p % MOD * qp % MOD) %= MOD;
f[i & 1][5000] = 1;
}
for (int pos = -n; pos <= n; pos ++ ) cout << f[n & 1][pos_] << ' ';
return 0;
}
詳細信息
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3608kb
input:
2 28 1 1
output:
0 0 1 11200001 68800001
result:
wrong answer 1st numbers differ - expected: '702764025', found: '0'