Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
15 / 15 / 4
Регистрация: 01.03.2013
Сообщений: 139
Записей в блоге: 1
1

Задача по ЕГЭ

03.05.2013, 18:53. Показов 1371. Ответов 1
Метки нет (Все метки)

Помогите решить задачу.
Условие задачи

Для автоматизированной системы управления движением городских пассажирских автобусов требуется написать программу, которая решает следующую задачу.
На некоторой остановке в течение одного часа для каждого пассажирского автобуса фиксируется время прибытия в минутах (целое число от 0 до 60), номер маршрута (целое число), название предприятия (текстовая строка 20 символов). Все автобусы одного маршрута принадлежат одному предприятию; одно предприятие может обслуживать несколько маршрутов. Для каждого маршрута задан плановый интервал движения в минутах (целое число от 5 до 15) — промежуток времени между моментами при-хода автобусов данного маршрута. Если автобусы некоторого маршрута допускают интервал движения, превышающий плановый более чем на 2 минуты, то на предприятие начисляется по одному штрафному баллу за каждую минуту.
Напечатать список маршрутов и предприятий, чьи автобусы допустили нарушения, и число штрафных баллов в виде < Номер маршрута >< Пред-приятие > < Число штрафных баллов >.
Исходные данные вводятся в компьютер в следующем порядке:
Сначала вводится число М — число маршрутов, проходящих через данную остановку, а затем вводится М строк вида < номер маршрута > < интервал движения> <название предприятия>. Здесь < номер маршрута > — разные целые числа в количестве М, < интервал движения > — целые числа от 5 до 15, < название предприятия > — строка символов не боkее 20.
Далее вводится число N — число прошедших через остановку автобусов, затем вводится N строк вида < время прибытия > < номер марш-рутам <Время прибытия> — целые числа от 0 до 60, вводятся в порядке неубывания, < номер маршрута > — целые числа, каждое число обязательно совпадает с одним из < номеров маршрута >, введенных выше.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2013, 18:53
Ответы с готовыми решениями:

Задача по егэ
Помогите дописать задачку пожалуйста. Не могу вывести все элементы List. На вход программе в...

Задача ЕГЭ по инфоматике
Снова нужна помощь по ЕГЭ. На вход подается набор символов, оканчивающийся точкой. Составить из...

Задача из ЕГЭ
Написать алгоритм подсчета количества уникальных элементов в целочисленном массиве длины N&lt;1000...

Задача ЕГЭ
Всем привет ,на егэ была такая задача №19 ,подскажите решение. пенсионный фонд владеет ценными...

1
228 / 95 / 27
Регистрация: 16.04.2013
Сообщений: 315
Записей в блоге: 2
03.05.2013, 20:42 2
Лучший ответ Сообщение было отмечено Айрат95 как решение

Решение

использовать хэш таблицу:
d1[Номер маршрута] = "Название предприятия, штраф"

если разрешено пользоваться стандартными коллекциями, то использовать в c# Dictionary<TKey, TValue>

Добавлено через 10 минут
1. Прочитать Номер маршрута и время прибытия.
2. Найти номер маршрута в дереве(хэш таблице), если есть, то посчитать штраф, в противном случае добавить узел в дерево или значение в хэш таблицу.
3. Пройтись по дереву, если штраф больше 0, выводить результат.

Вот и весь алгоритм.

ну вот приведу одно из возможных решений.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System;
using System.Collections.Generic;
 
namespace Codeforces.Div2._181
{
    internal class Program
    {
        class BusRoute
        {
            private string Name { get; set; }
            private int No { get; set; }
            private int Fine { get; set; }
            private readonly int _gap;
            private int _lastTime;
 
            public bool isFine
            {
                get { return Fine > 0; }
            }
 
            public BusRoute(string name, int no, int gap)
            {
                Name = name;
                No = no;
                _gap = gap;
                _lastTime = 0;
                Fine = 0;
            }
 
            public void Calculate(int time)
            {
                if (_lastTime != 0)
                {
                    int t = (time - _lastTime) - _gap;
                    if (t > 2)
                        Fine += t;
                }
                _lastTime = time;
            }
 
            public override string ToString()
            {
                return string.Format("{0} {1} {2}", No, Name, Fine);
            }
        }
 
        private static void Resolve()
        {
            int m = int.Parse(Console.ReadLine());
            var dic = new Dictionary<int, BusRoute>();
            for (int i = 0; i < m; ++i)
            {
                string[] ss = Console.ReadLine().Split();
                int no = int.Parse(ss[0]);
                var br = new BusRoute(ss[2], no, int.Parse(ss[1]));
                dic.Add(no, br);
            }
 
            int n = int.Parse(Console.ReadLine());
            for (int i = 0; i < n; ++i)
            {
                string[] ss = Console.ReadLine().Split();
                int no = int.Parse(ss[1]);
                int time = int.Parse(ss[0]);
                dic[no].Calculate(time);
            }
 
            foreach (var br in dic.Values)
            {
                if (br.isFine)
                    Console.WriteLine(br);
            }
        }
 
        private static void Main(string[] args)
        {
            Resolve();
            Console.ReadKey();
        }
    }
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.05.2013, 20:42

задача из егэ
ПОМОГИТЕ ПРОШУ ФОТО ВНИЗУ

Задача С5 по ЕГЭ
Доброго времени суток! Помогите решить задачу. Я незнаю как это решается. Так что, если можно мне...

Задача ЕГЭ
Здравствуйте! Имеется задача C4 из ЕГЭ: На вход программе подаются сведения о номерах школ...

Задача ЕГЭ по информатике
Сколько не решал, никогда такого чуда не видел. Кто сможет решить в расчете на то, что на экзамене...

Задача части С ЕГЭ
Срочно нужно решение, помогите, пожалуйста. В правильной шестиугольной пирамиде КАВСТЕН с...

Егэ информатика 27 задача
Спрошу коротко , почему у меня ошибка на 18 строчке ? #include &lt;iostream&gt; using namespace std ;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.