SHARE
TWEET

Untitled

a guest Dec 11th, 2018 49 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. '#include <iostream>
  2. #include <algorithm>
  3. #include <set>
  4. #include <queue>
  5. #include <vector>
  6. using namespace std;
  7. struct LastElementLess {
  8.     bool operator()(const std::multiset<int> &first, const std::multiset<int> &second) const {
  9.         if (second.empty()) {
  10.             return false;
  11.         }
  12.  
  13.         if (first.empty()) {
  14.             return true;
  15.         }
  16.  
  17.         return *first.rbegin() < *second.rbegin();
  18.     }
  19. };
  20. int fasti() {
  21.     char c = ' '; int a = 0;
  22.     while (!isdigit(c)) c = _getchar_nolock();
  23.     while (isdigit(c)) {
  24.         a = a * 10 + c - '0';
  25.         c = _getchar_nolock();
  26.     }
  27.     return a;
  28. }
  29. int main() {
  30.     int n, m, l, r, q, k, s, ans, pr;
  31.     cin >> n >> m >> q >> k;
  32.     vector<vector<int>> a(n, vector<int>(m));
  33.     for (int i = 0; i < n; i++) {
  34.         for (int j = 0; j < m; j++)
  35.             a[i][j] = fasti();
  36.     }
  37.     multiset< multiset <int>, LastElementLess > g;
  38.     for (int i = 0; i < n; i++) {
  39.         multiset<int> pr1;
  40.         for (int j = 0; j < m; j++) {
  41.             pr1.insert(a[i][j]);
  42.         }
  43.         g.insert(pr1);
  44.     }
  45.     for (int i = 0; i < m; i++) {
  46.         multiset<int> pr1;
  47.         for (int j = 0; j < n; j++) {
  48.             pr1.insert(a[j][i]);
  49.         }
  50.         g.insert(pr1);
  51.     }
  52.     /*for (auto rl : g) {
  53.         for (auto el : rl) {
  54.             cout << el << ' ';
  55.         }
  56.         cout << 'n';
  57.     }*/
  58.     for (int i = 0; i < q; i++) {
  59.         l = fasti(); r = fasti(); l--; r--;
  60.         s = a[l][r];
  61.         for (auto el = g.begin(); el != g.end(); el++) {
  62.             auto it = (*el).find(s);
  63.             if (it != (*el).end()) {
  64.                 if ((*el).size() == 1)
  65.                     (*el).insert(0); // тут
  66.                 (*el).erase(it); // и тут ошибка хз почему
  67.                 break;
  68.             }
  69.         }
  70.         auto it = g.begin();
  71.         auto it1 = (*it).end();
  72.         it1--;
  73.         cout << *it1 << 'n';
  74.     }
  75. }'
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top