askarulytarlan

NU project

Oct 25th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3.  
  4. using namespace std;
  5.  
  6. const int N = 100;
  7.  
  8. struct Pair {
  9. int id, sz;
  10. } a[N];
  11.  
  12. struct Answer {
  13. int day, hour, room;
  14. } ans[N][N];
  15.  
  16. int n, id_course[N], id_group[N], sz_group[N], k_group[N], m, l, id_room[N], sz_room[N], course[N][N];
  17. string prof[N];
  18. bool was[N][N][N];
  19.  
  20. void find(int id, int j){
  21. for(int day = 1; day <= 5; day++){
  22. for(int hour = 9; hour <= 18; hour++){
  23. for(int room = 0; room < l; room++){
  24. if(sz_room[room] >= sz_group[id] && !was[day][hour][room]){
  25. ans[id][j].day = day;
  26. ans[id][j].hour = hour;
  27. ans[id][j].room = id_room[room];
  28. was[day][hour][room] = true;
  29. return;
  30. }
  31. }
  32. }
  33. }
  34. }
  35.  
  36. bool cmp(Pair p1, Pair p2){
  37. return p1.sz > p2.sz;
  38. }
  39.  
  40. int main(){
  41.  
  42.  
  43. cin >> n;
  44.  
  45. for(int i = 0; i < n; i++){
  46. cin >> id_course[i];
  47. cin >> prof[id_course[i]];
  48. }
  49.  
  50. cin >> m;
  51.  
  52. for(int j = 0; j < m; j++){
  53. cin >> id_group[j];
  54. cin >> sz_group[id_group[j]]
  55. cin >> k_group[id_group[j]];
  56. a[j].id = id_group[j];
  57. a[j].sz = sz_group[id_group[j]];
  58. for(int i = 0; i < k_group[id_group[j]]; i++){
  59. cin >> course[id_group[j]][i];
  60. }
  61. }
  62.  
  63. cin >> l;
  64.  
  65. for(int i = 0; i < l; i++){
  66. cin >> id_room[i] >> sz_room[i];
  67. }
  68.  
  69. sort(a, a + m, cmp);
  70.  
  71. for(int i = 0; i < m; i++){
  72. for (int j = 0; j < k_group[a[i].id]; j++)
  73. find(a[i].id, course[a[i].id][j]);
  74. }
  75.  
  76. for(int i = 0; i < m; i++){
  77. cout << id_group[i] << endl;
  78. //cout << k_group[id_group[i]];
  79. for(int j = 0; j < k_group[id_group[i]]; j++){
  80. cout << prof[course[id_group[i]][j]] << " " << ans[id_group[i]][course[id_group[i]][j]].day << " " << ans[id_group[i]][course[id_group[i]][j]].hour << " " << ans[id_group[i]][course[id_group[i]][j]].room << endl;
  81.  
  82. }
  83. }
  84.  
  85. return 0;
  86. }
Add Comment
Please, Sign In to add comment