Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 51
1

Задача лентяй

09.01.2017, 14:51. Показов 6547. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Решал задачу ,задача прошла на 50 % . Не прошёл второй тест

Студент Валера являет собой классический пример лентяя. На занятия он практически не ходит, и только в конце семестра появляется в университете и сдает ”хвосты”. Его заветная мечта: найти такой день, когда можно будет сдать сразу все долги. У него есть расписание работы преподавателей, из которого точно известно, с какого и по какой день месяца каждый преподаватель ежедневно будет доступен. Помогите Валере написать программу, которая по расписанию будет определять, сможет ли Валера сдать все долги за один день или нет.
Входные данные

Первая строка содержит количество тестов. Каждый тест состоит из количество предметов n (1 ≤ n ≤ 100), которые нужно сдать Валере. Далее идет n строк, каждая из которых состоит из двух чисел a и b (1 ≤ a ≤ b ≤ 31), задающих интервал работы очередного преподавателя.
Выходные данные

Для каждого теста вывести в отдельной строке "YES" если возможно встретить всех преподавателей за один день, или "NO", если это невозможно.


Входные данные #1

2
1
1 2
2
1 2
3 4

Выходные данные #1

YES
NO


Вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main(){
int  k,n,a[MAXN],b[MAXN],maxa=MINN,minb=MAXN,l=0;
cin>>k;
for(int i=1;i<=k;i++){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i]>>b[i];
if(a[i]>=maxa)maxa=a[i];
if(b[i]<=minb)minb=b[i];
if(maxa<=minb /*|| (b[i-1]<=maxb && a[i-1]<=mina)*/ )l=1;
else l=0;
}
//cout<<maxb<<" "<<mina<<endl;
if(l==1)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}


Помогите мне найти мою ошибку ,пожалуйста !
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2017, 14:51
Ответы с готовыми решениями:

Лентяй: по заданному расписанию найти такой день, когда можно будет сдать сразу все долги
Студент Валера являет собой классический пример лентяя. На занятия он практически не ходит, и...

Лентяй Задача acmp 694 python
http://********/index.asp?main=task&amp;id_task=694 n = int(input()) ar = answer = c = 0 d =...

Олимпиадная задача по программированию. PascalABC.NET. Задача L. Переключение между окнами
Когда пользователь работает в операционной системе Winux, у него часто запущено несколько...

Васильев C# Глава 7 задача 8 (Просьба объяснить формулировку(задача внутри)
Текст задачи Напишите программу с классом, у которого есть текстовое поле. Значение текстовому...

3
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
09.01.2017, 15:45 2
Лучший ответ Сообщение было отмечено Bryan Castle как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
    int numOfTests, numOfSubj, from, to, curFrom, curTo;
    std::cin >> numOfTests;
    for (int i = 0; i < numOfTests; i++)
    {
        std::cin >> numOfSubj >> from >> to;
        for (int j = 1; j < numOfSubj; j++)
        {
            std::cin >> curFrom >> curTo;
            if (from < curFrom)
                from = curFrom;
            if (curTo < to)
                to = curTo;
        }
        std::cout << (from <= to ? "YES\n" : "No\n");
    }
}
1
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 51
09.01.2017, 15:52  [ТС] 3
MrGluck, можете объяснить алгоритм вашей кода или программы?
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
09.01.2017, 16:09 4
Цитата Сообщение от Bryan Castle Посмотреть сообщение
можете объяснить алгоритм вашей кода или программы?
Да всё просто.
Сначала считываем количество тестов, потом в цикле для каждого теста узнаём количество предметов, начальные значения диапазона.
Потом считываем оставшиеся предметы (первый уже считали). Если нижняя граница выше, обновляем нижнюю границу, если верхняя граница ниже, обновляем верхнюю границу. В конце выводим результат в зависимости от того факта, что нижняя граница не больше верхней.
0
09.01.2017, 16:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2017, 16:09
Помогаю со студенческими работами здесь

Задача: В некотором государстве ввели компьютерный паспорт гражданина.(задача)
Доброго времени суток,форумчане. Хотелось бы попросить помощи в решении одной задачи от умных...

Васильев C# Глава 8 задача 2 (Просьба объяснить формулировку(задача внутри)
Текст задачи Написать программу , в которой есть класс с полем, являющимся ссылкой на одномерный...

Олимпиадная задача по программированию. PascalABC.NET. Задача С. Считалка
Ирочка попросила маму придумать новую считалочку. Мама тут же ей &quot;выдала&quot;. Пусть в кругу N...

Задача на перебор вариантов. Задача Л.Эйлера. Про чиновника
Задача Л.Эйлера. Некий чиновник купил лошадей и быков на сумму 1770 талеров. За каждую лошадь он...

Задача на k-тую цифру последовательности, задача на схему Горнера.
Ну, собственно опять прошу помощи... Задача 1: Определить k-тую цифру последовательности...

Первая смешанная задача для волнового уравнения на отрезке (задача о колебаниях ограниченной струны) методом Фурье
Решить первую смешанную задачу для волнового уравнения на отрезке (задача о колебаниях ограниченной...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru