QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#915770 | #9312. Random Dungeon | roger_yrj | RE | 0ms | 0kb | C++14 | 533b | 2025-02-26 15:49:52 | 2025-02-26 15:49:54 |
Judging History
answer
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e6+10;
ll n,c,a[N],sum[N];
double f[N];
int main(){
freopen("card.in","r",stdin);
freopen("card.out","w",stdout);
cin>>n>>c;
for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
sort(a+1,a+n+1,[](int x,int y){return x>y;});
for(int i=1;i<=n;i++)sum[i]=sum[i-1]+a[i];
for(int i=1,j=1;i<=n;i++){
f[i]=sum[j]+f[i-1]*(i-j);
while(j<i&&sum[j+1]+f[i-1]*(i-j-1)>f[i])j++,f[i]=sum[j]+f[i-1]*(i-j);
f[i]=f[i]/i-c;
}
printf("%.12lf",f[n]);
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Dangerous Syscalls
input:
3 1 1 2 3