fork(1) download
  1. #include <iostream>
  2. #include <stack>
  3.  
  4. int main(){
  5. int t, tmax, n;
  6. int day_new_task; // День получения новой задачи
  7. int day_last_task = 0; // День получения предыдущей
  8.  
  9. std::stack<int> s;
  10.  
  11. std::cin >> t; //Количество дней, которое тратится на любую задачу
  12. std::cin >> tmax; // Количество дней в курсе
  13. std::cin >> n; // Количество задач в курсе
  14.  
  15. // В цикле рассматриваем задачи с 1 по n-ю
  16. for(int i = 1; i <= n; i++){
  17. std::cin >> day_new_task; //День, в который получена i-я задача
  18. if(day_last_task == 0) day_last_task = day_new_task; //День, в который получена предыдущая задача
  19.  
  20. // Если при получении новой задачи студент еще решает старую
  21. // Дополнительное условие: дни получения новой и текущей задачи не равны
  22. // Запоминаем задачу, которую студент не решил
  23. if((day_new_task - day_last_task < t) && (day_new_task ^ day_last_task))
  24. s.push(i);
  25. // Если студент свободен, даем ему новую задачу
  26. if(day_new_task - day_last_task >= t)
  27. day_last_task = day_new_task;
  28. }
  29.  
  30. std::cout << s.size() << std::endl;
  31. while(!s.empty()){
  32. std::cout << s.top() << " ";
  33. s.pop();
  34. }
  35.  
  36. int pause;
  37. std::cin >> pause;
  38. }
Success #stdin #stdout 0s 3468KB
stdin
2 6 3
1
2
3
stdout
1
2