Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  1. #include"pch.h"
  2. #include<iostream>
  3. #include<vector>
  4. #include<algorithm>
  5. #include<stdio.h>
  6. using namespace std;
  7. #define endl '\n'
  8. typedef long long ll;
  9.  
  10. const int maxn = 1e5 + 10;
  11. int n, B, L, D;
  12. int books[maxn], freq[1000000], uniqueBooksCounter, numberOfLibrariesWithNoUniqueBooks;
  13. double avgFreq, avgUniqueBooksInLibrary;
  14.  
  15. struct library {
  16.  
  17. int n, signup, booksPerDay, uniqueBooks;
  18. vector < int > ids;
  19. double avgUniqueBooks;
  20. library() {
  21. n = signup = booksPerDay = uniqueBooks = 0;
  22. avgUniqueBooks = 0;
  23. }
  24. bool operator<(const library &second)
  25. const {
  26. return avgUniqueBooks > second.avgUniqueBooks;
  27. }
  28. };
  29.  
  30. vector < library > libraries;
  31.  
  32. int main() {
  33. ios_base::sync_with_stdio(0); cin.tie(NULL); cout.precision(10); cout << fixed;
  34. freopen("c.txt", "r", stdin);
  35. cin >> B >> L >> D;
  36.  
  37. for (int i = 0; i < B; i++) cin >> books[i];
  38.  
  39. libraries.clear();
  40.  
  41. for (int i = 0, n, signup, booksPerDay; i < L; i++) {
  42. cin >> n >> signup >> booksPerDay;
  43.  
  44. library lib;
  45. lib.n = n;
  46. lib.signup = signup;
  47. lib.booksPerDay = booksPerDay;
  48.  
  49. for (int j = 0, id; j < n; j++) {
  50. cin >> id;
  51. freq[id]++;
  52. lib.ids.push_back(id);
  53. }
  54.  
  55. libraries.push_back(lib);
  56. }
  57. for (int i = 0; i < B; i++) {
  58. if (freq[i] == 1)
  59. uniqueBooksCounter++;
  60. avgFreq += freq[i];
  61. }
  62. for (int i = 0; i < L; i++) {
  63. for (int j = 0; j < libraries[i].n; j++)
  64. if (freq[libraries[i].ids[j]] == 1)
  65. libraries[i].uniqueBooks++;
  66. libraries[i].avgUniqueBooks = (double)libraries[i].uniqueBooks / libraries[i].n;
  67. avgUniqueBooksInLibrary += libraries[i].avgUniqueBooks;
  68. }
  69. sort(libraries.begin(), libraries.end());
  70.  
  71. for (int i = 0; i < L; i++)
  72. if (!libraries[i].uniqueBooks)
  73. numberOfLibrariesWithNoUniqueBooks++;
  74.  
  75. avgUniqueBooksInLibrary /= L;
  76. avgFreq /= B;
  77. cout << "Number of days is " << D << endl;
  78. cout << endl;
  79. cout << "Number of libraries is " << L << endl;
  80. cout << endl;
  81. cout << "Number of books is " << B << endl;
  82. cout << endl;
  83. cout << "Number of unique books is " << uniqueBooksCounter << endl;
  84. cout << endl;
  85. cout << "Average frequency for books is " << avgFreq << endl;
  86. cout << endl;
  87. cout << "Average unique books for each library is " << avgUniqueBooksInLibrary << endl;
  88. cout << endl;
  89. cout << "maximum number of unique books ratio in library is " << libraries[0].avgUniqueBooks << endl;
  90. cout << endl;
  91. cout << "minimum number of unique books ratio in library is " << libraries.back().avgUniqueBooks << endl;
  92. cout << endl;
  93. cout << "Number of libraries with no unique books " << numberOfLibrariesWithNoUniqueBooks << endl;
  94. cout << endl;
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement