Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- typedef unsigned int ui;
- typedef long double ld;
- typedef __int128_t sll;
- int main()
- {
- //ios_base::sync_with_stdio(0);
- //cin.tie(0); cout.tie(0);
- string in[6];
- in[0] = "tests/a_example.txt";
- in[1] = "tests/b_read_on.txt";
- in[2] = "tests/c_incunabula.txt";
- in[3] = "tests/d_tough_choices.txt";
- in[4] = "tests/e_so_many_books.txt";
- in[5] = "tests/f_libraries_of_the_world.txt";
- string out[6];
- out[0] = "res/a.txt";
- out[1] = "res/b.txt";
- out[2] = "res/c.txt";
- out[3] = "res/d.txt";
- out[4] = "res/e.txt";
- out[5] = "res/f.txt";
- for (int test = 0; test < 6; test++) {
- int B, L, D;
- vector<int> score;
- vector<pair<double, int>> sumlib;
- vector<vector<int>> blib;
- vector<bool> used;
- ifstream cin(in[test]);
- ofstream cout(out[test]);
- cin >> B >> L >> D;
- score.resize(B);
- used.resize(B);
- for (int i = 0; i < B; i++) {
- cin >> score[i];
- }
- for (int i = 0; i < L; i++) {
- double N, T, M, sum = 0;
- cin >> N >> T >> M;
- blib.push_back({});
- for (int j = 0; j < N; j++) {
- int b;
- cin >> b; sum += score[b];
- blib[i].push_back(b);
- }
- sumlib.push_back({sum / (T + N/M), i});
- sort(blib[i].begin(), blib[i].end(), [&](int a, int b){return score[a] > score[b];});
- }
- sort(sumlib.rbegin(), sumlib.rend());
- cout << L << '\n';
- for (int i = 0; i < L; i++) {
- int id = sumlib[i].second;
- cout << id << ' ' << blib[id].size() << '\n';
- for (int b : blib[id])
- cout << b << ' ';
- cout << '\n';
- }
- cout.close();
- cin.close();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement