QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#240716 | #3247. 挑战 | Cofe_Milk# | WA | 1ms | 5916kb | C++17 | 1.3kb | 2023-11-05 17:51:33 | 2023-11-05 17:51:34 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long double ld;
typedef long long ll;
//#define int ll
#define endl '\n'
#define fi first
#define se second
#define pii pair<int, int>
#define rep(i,a,n,k) for(int i=a;i<=n;i+=k)
#define per(i,a,n,k) for(int i=a;i>=n;i-=k)
/*·········································*/
const int N = 1e5 + 10;
int n, m;
ld dp[N][3];
ll p[N], q[N];
ld vec(ld x, ld y)
{
if(x <= y) return (x + 1) / 2.0 / (y + 1);
return (2 * x - y) / 2.0 / ld(n);
}
ld deu(ld x, ld y)
{
return min(x, y) / ld(n) / ld(m + 1);
}
ld fai(ld x, ld y)
{
return 1 - vec(x, y) - deu(x, y);
}
void solve()
{
cin >> n;
rep(i,0,n-1,1) cin >> p[i];
rep(i,0,n-1,1) cin >> q[i];
per(i,n-1,0,1) rep(j,1,min(p[i],(ll)n-i),1)
{
dp[i][1] = max(dp[i][1], 1 - dp[i + j][0]);
dp[i][2] = max(dp[i][2], dp[i + j][0]);
if(j != p[i])
dp[i][0] = max({dp[i][0], dp[i][1], dp[i + j][1] * vec(p[i] - j, q[i] + q[i + j]) + (1 - dp[i + j][0]) * deu(p[i] - j, q[i] + q[i + j]) + (1 - dp[i + j][2]) * fai(p[i] - j, q[i] + q[i + j])});
else dp[i][0] = max(dp[i][0], dp[i][1]);
}
cout << fixed << setprecision(10) << dp[0][0];
}
signed main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int t = 1;
//cin>>t;
while(t--) solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 5916kb
input:
1000 5 1 33 33 35 2 28 10 2 24 12 19 30 32 3 23 27 3 35 15 13 24 27 13 5 25 3 27 16 18 35 17 11 6 22 1 30 12 11 25 12 17 15 6 17 5 4 25 5 26 2 23 7 18 21 18 31 24 1 15 29 15 16 33 28 23 24 12 13 26 25 28 2 9 27 2 25 16 27 5 20 17 4 4 35 17 17 24 2 27 35 28 3 15 33 33 7 9 6 2 9 34 29 10 27 15 16 32 2...
output:
0.9250567315
result:
wrong answer 1st numbers differ - expected: '0.9251428', found: '0.9250567', error = '0.0000861'