72 lines
1.6 KiB
C++
72 lines
1.6 KiB
C++
#include <fstream>
|
|
#include <algorithm>
|
|
#include <unordered_map>
|
|
#include <cmath>
|
|
using namespace std;
|
|
|
|
ifstream input_stream;
|
|
ofstream output_stream;
|
|
|
|
|
|
void getNumRepr(int num, char res[10]) {
|
|
res[9] = '0' + (num % 10);
|
|
num /= 10; // 406
|
|
res[8] = '0' + (num % 10);
|
|
num /= 10; // 40
|
|
res[7] = '.';
|
|
|
|
for (int i = 6; i >= 0; i--) {
|
|
if (num > 0) {
|
|
res[i] = '0' + num % 10;
|
|
num /= 10;
|
|
} else {
|
|
res[i] = ' ';
|
|
}
|
|
}
|
|
}
|
|
|
|
int main() {
|
|
input_stream.open("energie.in");
|
|
output_stream.open("energie.out");
|
|
|
|
int N;
|
|
input_stream >> N;
|
|
|
|
int consume[N];
|
|
int sum = 0;
|
|
unordered_map<int, string> lnames, fnames;
|
|
|
|
for (int i = 0; i < N; i++) {
|
|
string tmp_lname, tmp_fname;
|
|
input_stream >> tmp_lname;
|
|
input_stream >> tmp_fname;
|
|
input_stream >> consume[i];
|
|
lnames[consume[i]] = tmp_lname;
|
|
fnames[consume[i]] = tmp_fname;
|
|
sum += consume[i];
|
|
}
|
|
|
|
double medium = double(sum) / double(N);
|
|
medium *= 100;
|
|
medium = round(medium);
|
|
|
|
char medRepr[10];
|
|
getNumRepr(int(medium), medRepr);
|
|
|
|
for (int i = 0; i < 10; i++) {
|
|
output_stream << medRepr[i];
|
|
}
|
|
output_stream << endl;
|
|
|
|
sort(consume, consume + N);
|
|
for (int i = N - 1; i >= 0; i--) {
|
|
output_stream << lnames[consume[i]] << " ";
|
|
output_stream << fnames[consume[i]] << " ";
|
|
output_stream << consume[i] << endl;
|
|
}
|
|
|
|
input_stream.close();
|
|
output_stream.close();
|
|
return 0;
|
|
}
|