Submission #24003

#TimeUsernameProblemLanguageResultExecution timeMemory
24003TrathzPareto (COCI17_pareto)C++98
80 / 80
113 ms4364 KiB
#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 = mp(0, 0);
    for(int i = 0;i<n;i++){
        atual+=v[i];
        pair<double , double > l = mp(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);

}
#Verdict Execution timeMemoryGrader output
Fetching results...