Московская олимпиада по информатике - 2005: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 494:
Далее основная логика программы укладывается буквально в несколько строк:
 
cin>>scanf("%d%d",&K>>,&N);
for(i=1;i<=K;i++) {
Tup.push(i); //изначально все тупики свободны
Строка 500:
//обрабатываем очередную прибывающую электричку
for(i=1;i<=N;i++) {
cin>>scanf("%d%d",&in_time>>,&out_time);
while ((!Tr.empty())&&(Tr.top().outtime<in_time)) {
//отправляем электрички
Строка 508:
if(Tup.empty()) {
//свободных тупиков нет: организовать движение нельзя
cout<<printf("0 %d"<<,i);
return 0;
}
Строка 519:
//выводим результат
for(i=1;i<=N;i++) {
cout<<printf("%d ",a[i]<<" ");
}
 
(Мы не используем здесь для организации вводы/вывода библиотеку iostream, поскольку это значительно замедлило бы выполнение программы.)
(Написать замечание про медленную работу cin/cout)
 
Мы использовали дополнительный массив a для хранения номеров тупиков, в которые прибывают электрички. Мы не можем выводить их сразу, поскольку может оказаться, что по данному расписанию движение организовать нельзя.