68B - Energy exchange - CodeForces Solution


binary search *1600

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;
#define ll  long long
int n;
double k;
double a[10005];
bool check (double mid)
{
    double need=0;
    double have=0;
    for(int i=0;i<n;i++)
    {
        if (a[i]>=mid)
            have+= a[i] - mid;
        if (a[i]<mid)
            need += mid - a[i];
    }
    have = have - (have*k)/100.0;
    return have>=need;
}
void solve() {
    cin>>n;
    cin>>k;
    for(int i=0;i<n;i++)
        cin>>a[i];

    double maxi=0;
   double l =0;
   double r= 1e9;
    for(int i = 0; i < 400; i++){
       double mid = (l+r)/2.0;
       if (check(mid))
       {
           maxi= max(maxi,mid);
           l = mid;
       }
       else
           r = mid;


   }
    cout << fixed << setprecision(9)<<maxi;
}

int main() {
    solve();
    return 0;
}


Comments

Submit
0 Comments
More Questions

553A - Kyoya and Colored Balls
1364A - XXXXX
1499B - Binary Removals
1569C - Jury Meeting
108A - Palindromic Times
46A - Ball Game
114A - Cifera
776A - A Serial Killer
25B - Phone numbers
1633C - Kill the Monster
1611A - Make Even
1030B - Vasya and Cornfield
1631A - Min Max Swap
1296B - Food Buying
133A - HQ9+
1650D - Twist the Permutation
1209A - Paint the Numbers
1234A - Equalize Prices Again
1613A - Long Comparison
1624B - Make AP
660B - Seating On Bus
405A - Gravity Flip
499B - Lecture
709A - Juicer
1358C - Celex Update
1466B - Last minute enhancements
450B - Jzzhu and Sequences
1582C - Grandma Capa Knits a Scarf
492A - Vanya and Cubes
217A - Ice Skating