# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
24002 | 2017-05-29T05:19:13 Z | Trathz | Pareto (COCI17_pareto) | C++ | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; #define F first #define S second #define int long long #define mp make_pair #define pb push_back #define pii pair<int, int> #define ieps (int) 1e5 + 800 #define eps (int) 1e9 #define jmp exit(0) double pct(int x , int y){ return 1.0*x/y; } int32_t main(){ int n ; cin>>n; vector<int> v(n); int s = 0; for(int i = 0;i<n;i++) cin>>v[i] , s+=v[i]; sort(v.rbegin() , v.rend()); int atual = 0; pair<double , double > tot = {0, 0}; for(int i = 0;i<n;i++){ atual+=v[i]; pair<double , double > l = {pct(i + 1 , n) , pct(atual,s)}; if(l.S - l.F> tot.S - tot.F){ tot = l; } } printf("%.10f\n%.10f", 100 * tot.F, 100 * tot.S); }