Files
contests/2022/city/12/energie/energie.cpp
2022-06-01 20:14:50 +03:00

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;
}