Advertisement
Pit_Anonim

Untitled

Dec 15th, 2021
841
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. int n, _n;
  5.  
  6. int global_i = 1;
  7. std::vector<int> mass_index, mass_offer;
  8. std::vector<std::vector<int>> massA, massB;
  9.  
  10.  
  11. int make_offer(int count){
  12.     int offer;
  13.  
  14.     offer = massA[count][mass_index[count]];
  15.  
  16.     if (mass_offer[offer] == -1) {
  17.         mass_offer[offer] = count;
  18.         return 0;
  19.     }
  20.     else {
  21.         for (int i = 1;i < _n; i++) {
  22.             if ((massB[offer][i] == mass_offer[offer]) || (massB[offer][i] == count))
  23.                 if (massB[offer][i] == mass_offer[offer]) {
  24.                     mass_index[count]++;
  25.                     return count;
  26.                 }
  27.                 else {
  28.                     int x = mass_offer[offer];
  29.                     mass_index[mass_offer[offer]]++;
  30.                     mass_offer[offer] = count;
  31.                     return x;
  32.                 }
  33.         }
  34.     }
  35. }
  36.  
  37. int main(){
  38.     std::cin>>n;
  39.     _n = n + 1;
  40.  
  41.     mass_index = std::vector<int>(_n, 0);
  42.     mass_offer = std::vector<int>(_n, 0);
  43.     massA = std::vector<std::vector<int>>(_n, std::vector<int>(_n, 0));
  44.     massB = std::vector<std::vector<int>>(_n, std::vector<int>(_n, 0));
  45.  
  46.     for (int i = 1; i < _n; i++)
  47.         for (int j = 1; j < _n; j++)
  48.             std::cin>>massA[i][j];
  49.  
  50.     for (int i = 1; i < _n; i++)
  51.         for (int j = 1; j < _n; j++)
  52.             std::cin>>massB[i][j];
  53.  
  54.     for (int i = 1; i < _n; i++){
  55.         mass_index[i] = 1;
  56.         mass_offer[i] = -1;
  57.     }
  58.  
  59.  
  60.     int x;
  61.     int count_0 = 0;
  62.  
  63.     while (count_0 != _n - 1){
  64.         x = make_offer(global_i);
  65.         if (x == 0){
  66.             count_0++;
  67.             global_i = count_0 + 1;
  68.         }
  69.         else global_i = x;
  70.     }
  71.  
  72.     std::cout<<"M - F"<<std::endl; // Male and Female (we had problems with russian localization)
  73.  
  74.     for (int i = 1; i < _n; i++)
  75.         std::cout<<i<<" - "<<mass_offer[i]<<std::endl;
  76.  
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement