Advertisement
ZergRushA

prakt-8__01.11.2022

Nov 1st, 2022 (edited)
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.12 KB | None | 0 0
  1. #include <iostream>
  2. #include <set>
  3. #include <string>
  4. #include <map>
  5. #include <vector>
  6. #include <algorithm>
  7. #include <tuple>
  8.  
  9. using namespace std;
  10.  
  11. int main()
  12. {
  13.  
  14.  
  15.     typedef struct Auditoria{
  16.         int index;
  17.         int aud_capacity;
  18.         bool multimedia = false;
  19.         bool contain_computer = false;
  20.         bool aud_inventory = false;
  21.         vector<tuple<int, int>> index_pairs;
  22.  
  23.         //Перегрузка оператора "<" для дальнейшей сортировки по возрастанию
  24.         bool operator < (const Auditoria& input_struct) const{
  25.             return (aud_capacity < input_struct.aud_capacity);
  26.         }
  27.     } auditoria;
  28.  
  29.  
  30.     typedef struct Group{
  31.         int index;
  32.         int group_amount;
  33.         int group_stream;
  34.  
  35.  
  36.         bool operator < (const Group& input_struct) const{
  37.             return (group_amount < input_struct.group_amount);
  38.         }
  39.     } group;
  40.  
  41.  
  42. /*
  43.     struct Timetable{
  44.         string lesson_type;
  45.         int lesson_duration;
  46.         string aud_requirements;
  47.     } timetb;
  48. */
  49.  
  50.  
  51.     vector<group> group_array;
  52.     int group_number, aud_number;
  53.  
  54.     cout << "Введите количество групп: ";
  55.     cin >> group_number;
  56.  
  57.     for (int i = 0; i < group_number; i++){
  58.         group group_data;
  59.  
  60.         group_data.index = i+1;
  61.  
  62.         cout << "Введите численность группы: ";
  63.         cin >> group_data.group_amount;
  64.  
  65.         cout << "Введите поток группы: ";
  66.  
  67.         cin >> group_data.group_stream;
  68.         group_array.push_back(group_data);
  69.     }
  70.  
  71.  
  72.  
  73.     vector<auditoria> aud_array;
  74.  
  75.     cout << "Введите количество аудиторий: ";
  76.     cin >> aud_number;
  77.  
  78.  
  79.  
  80.     for (int j = 0;j < aud_number;j++){
  81.         auditoria aud_data;
  82.  
  83.         aud_data.index = j+1;
  84.  
  85.         cout << "Введите вместимость аудитории: ";
  86.         cin >> aud_data.aud_capacity;
  87.  
  88.         aud_array.push_back(aud_data);
  89.  
  90.  
  91.     }
  92.  
  93.  
  94.     sort(group_array.begin(), group_array.end());
  95.  
  96.  
  97.     sort(aud_array.begin(), aud_array.end());
  98.  
  99.  
  100.     for (int i= 0; i < aud_number;i++){
  101.         for (int j = 0; j < group_number;j++){
  102.  
  103.             if (aud_array[i].aud_capacity >= group_array[j].group_amount){
  104.                
  105.                 aud_array[i].index_pairs.push_back(tuple<int, int>(group_array[j].index, group_array[j].group_stream));
  106.            
  107.                
  108.             }
  109.             /*
  110.             else{
  111.                 cout << "Группа с индексом " << group_array[j].index << " не помещается в аудиторию с индексом " << aud_array[i].index << endl;
  112.             }
  113.             */
  114.         }
  115.     }
  116.    
  117.     int output_index, output_stream;
  118.    
  119.     for (int i = 0; i < aud_number; i++){
  120.         tie(output_index, output_stream) = aud_array[i].index_pairs[i];
  121.        
  122.         cout << "Auditoria index: "<< aud_array[i].index << "  ";
  123.         cout << "Group index: "<< output_index << "  ";
  124.         cout << "Group stream: "<< output_stream << endl;
  125.     }
  126.  
  127.     return 0;
  128. }
  129.  
  130.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement