vlatkovski

Knigi

Jun 4th, 2017
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.11 KB | None | 0 0
  1. #include <iostream>
  2. #include <set>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7.     int n, m;
  8.     cin >> n >> m;
  9.  
  10.     multiset<int> h;
  11.     for (int i = 0; i < n; i++) {
  12.         int x;
  13.         cin >> x;
  14.         h.insert(x);
  15.     }
  16.  
  17.     int passed = 0; //vkupno pat pominat
  18.     int i = 0; //broj na knigi zemeni (odi 0, 1, 2, ..., m, 0, 1, 2, ..., m, 0...)
  19.     int most_distant = 0; //naj dalecnata kniga od grupata m knigi
  20.  
  21.     multiset<int>::reverse_iterator rit;
  22.     for (rit = h.rbegin(); rit != h.rend(); ++rit) {
  23.         int x = *rit;
  24.  
  25.         if (x > most_distant) {
  26.             //cout << "nov most_distant:" << x << " | " ;
  27.             most_distant = x;
  28.         }
  29.  
  30.         //cout << "i:" << i << " x:" << x << " | ";
  31.  
  32.         if (i == m - 1 || next(rit, 1) == h.rend()) { //ako sme na poslednata iteracija ILI sme na posledniot element
  33.             passed += 2 * most_distant; //dodaj go patot
  34.             //cout << "passed e sega " << passed;
  35.             i = 0;
  36.             most_distant = 0;
  37.         } else {
  38.             ++i;
  39.         }
  40.         //cout << endl;
  41.     }
  42.  
  43.     cout << passed << endl;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment