Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.74 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. bool comp(pair<int, vector< int > > a, pair<int, vector< int > > b)
  6. {
  7.     return (a.second[0] < b.second[0]);
  8. }
  9.  
  10. bool solve(vector<int> a, vector<int> b) {
  11.     for(int i = 0; i < a.size(); i++) {
  12.         if(a[i] < b[i])
  13.             return false;
  14.     }
  15.     return true;
  16. }
  17.  
  18. int main() {
  19.  
  20.     int k, n;
  21.  
  22.     while(cin >> k >> n) {
  23.         vector< pair<int, vector< int > > > boxes(k, pair<int, vector< int > >(n, {1,{0}}));
  24.  
  25.         for(int i = 0; i < k; i++) {
  26.             vector<int> tempV(n, 0);
  27.             for(int j = 0; j < n; j++) {
  28.                 int tmp, vol = 1;
  29.                 cin >> tmp;
  30.                 tempV[j] = tmp;
  31.             }
  32.             sort(tempV.begin(), tempV.end(), greater<int>());
  33.             boxes[i] = {i+1, tempV};
  34.         }
  35.         sort(boxes.begin(), boxes.end(), comp);
  36.  
  37. //        for(int i = 0; i < k; i++) {
  38. //            cout << boxes[i].first << " = ";
  39. //            for(int j = 0; j < n; j++) {
  40. //                cout <<  ((boxes[i]).second)[j] << " ";
  41. //            }
  42. //            cout << endl;
  43. //        }
  44.  
  45.         vector<int> cnt(k, 1);
  46.         vector<int> trace(k);
  47.         int res = INT_MIN;
  48.  
  49.         for(int i = 0; i < k; i++) {
  50.             trace[i] = i;
  51.         }
  52.  
  53.         for(int i = 1; i < n; i++) {
  54.             for(int j = 0; j < i; j++) {
  55.                 if(solve(boxes[j].second, boxes[i].second)) {
  56.                     cnt[i++];
  57.                     trace[i] = j;
  58.                 }
  59.             }
  60.         }
  61.  
  62.         for(int i = 0; i < k; i++) {
  63.             res = (res, cnt(i));
  64.         }
  65.  
  66.         cout << res << endl;
  67.         for(int i = 0; i < k; i++)
  68.             cout << res[i] << " ";
  69.     }
  70.  
  71.     return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement