-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path557B.cpp
More file actions
56 lines (37 loc) · 737 Bytes
/
557B.cpp
File metadata and controls
56 lines (37 loc) · 737 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n,w;
cin >> n >> w;
long long n2 = n*2;
long long arr[n2];
for(long long i=0;i<n2;i++){
cin >> arr[i];
}
sort(arr,arr+n2);
double fim = ((2.0/3.0) * w)/(double)n;
double ini = 0;
while(fim - ini > 0.00000000000001){
double mid = (fim+ini)/2.0;
bool aguenta = true;
for(int i=0;i<n;i++){
if(arr[i]<mid/2.0){
aguenta = false;
break;
}
}
for(int i=n;i<n2;i++){
if(arr[i]<mid){
aguenta = false;
break;
}
}
if(aguenta){
ini = mid;
}else{
fim = mid;
}
}
printf("%.20lf\n",ini * n + (ini/2) * n);
return 0;
}