QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#733892 | #9540. Double 11 | forget-star | WA | 1ms | 8052kb | C++20 | 1.1kb | 2024-11-10 21:52:32 | 2024-11-10 21:52:32 |
Judging History
answer
#include<bits/stdc++.h>
#define int long long
#define fr(i,a,b) for(int i(a),end##i(b);i<=end##i;i++)
#define fd(i,a,b) for(int i(a),end##i(b);i>=end##i;i--)
#define de fprintf(stderr,"on-%d\n",__LINE__)
using namespace std;
const int maxn=2e5+5;
int a[maxn];
int n,m;
double f[maxn];
int s[maxn];
int fa[maxn];
int find(int x){
if(fa[x]==x)return x;
return fa[x]=find(fa[x]);
}
double S[maxn];
double w(int x,int y){
return sqrt(1.*(s[y]-s[x])*(y-x));
}
struct node{
int x,l,r;
};
deque<node> Q;
int d[maxn];
int pre[maxn];
const double eps=1e-9;
int solve(double del){
fr(i,1,n){
f[i]=10000;
fr(j,0,i-1)if(f[i]>f[j]+w(j,i)+del){
f[i]=f[j]+w(j,i)+del;
pre[i]=j;
d[i]=d[j]+1;
}
}
return d[n];
}
signed main(){
#ifdef pig
freopen("pig.in","r",stdin);
freopen("bf.out","w",stdout);
#endif
cin>>n>>m;
fr(i,1,n)scanf("%lld",&a[i]);
sort(a+1,a+n+1);
fr(i,1,n)s[i]=s[i-1]+a[i];
double l=0,r=1e9;
fr(T,1,50){
double mid=(l+r)/2;
int t=solve(mid);
if(t<m)r=mid;
else l=mid;
}
printf("%.12lf\n",f[n]-l*m);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 8052kb
input:
4 2 1 2 3 4
output:
6.191148257163
result:
wrong answer 1st numbers differ - expected: '6.1911471', found: '6.1911483', error = '0.0000002'