All pastes #9226 Raw Edit

me22

public cpp v1 · immutable
#9226 ·published 2005-04-10 04:53 UTC
rendered paste body
#include <iostream>#include <algorithm>#include <iterator>#include <fstream>#include <limits>#include <cassert>#include <functional>#include <set>#include <vector>#include <iomanip>#include <numeric>using namespace std;int main() {	assert( numeric_limits<long>::max() > 1000000000 );	typedef multiset< long, greater<long> > score_set;	score_set scores;	typedef vector< long > rank_set;	rank_set ranks;	ifstream in( "s5.in" );//	  istream &in = cin;	long cases_left = 0;	in >> cases_left;	ranks.reserve( cases_left );	long current_score;	   	while ( cases_left-- && ( in >> current_score ) ) {		score_set::iterator pos = scores.lower_bound( current_score );		long this_rank = 1 + distance( scores.begin(), pos );		scores.insert( pos, current_score );		ranks.push_back( this_rank );	 //	  	  cerr << this_rank << " of " << scores.size() << endl;		}	double mean_rank = accumulate( ranks.begin(), ranks.end(), 0.0 )					   / ranks.size();	cout << fixed << setprecision(2) << mean_rank << endl;	  	  		return 0;}