Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/40: Рейтинг темы: голосов - 40, средняя оценка - 4.98
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508

Вырубка леса

29.03.2015, 18:42. Показов 7896. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вырубка леса
Автор: Центральная предметно-методическая комиссия по информатике

Входной файл: forest.in Ограничение времени на тест: 1 сек
Выходной файл: forest.out Ограничение памяти на тест: 256 Мб
Максимальная оценка: 100 баллов
Условие
Фермер Николай нанял двух лесорубов: Дмитрия и Федора, чтобы вырубить лес, на месте которого должно быть кукурузное поле. В лесу растут X деревьев.
Дмитрий срубает по A деревьев в день, но каждый K-й день он отдыхает и не срубает ни одного дерева. Таким образом, Дмитрий отдыхает в K-й, 2 K-й, 3 K-й день, и т.д.
Федор срубает по B деревьев в день, но каждый M-й день он отдыхает и не срубает ни одного дерева. Таким образом, Федор отдыхает в M-й, 2 M-й, 3 M-й день, и т.д.
Лесорубы работают параллельно и, таким образом, в дни, когда никто из них не отдыхает, они срубают A + B деревьев, в дни, когда отдыхает только Федор — A деревьев, а в дни, когда отдыхает только Дмитрий — B деревьев. В дни, когда оба лесоруба отдыхают, ни одно дерево не срубается.
Фермер Николай хочет понять, за сколько дней лесорубы срубят все деревья, и он сможет засеять кукурузное поле.
Требуется написать программу, которая по заданным целым числам A, K, B, M и X определяет, за сколько дней все деревья в лесу будут вырублены.
Пояснения к примеру
В приведенном примере лесорубы вырубают 25 деревьев за 7 дней следующим образом:
1-й день: Дмитрий срубает 2 дерева, Федор срубает 3 дерева, итого 5 деревьев;
2-й день: Дмитрий срубает 2 дерева, Федор срубает 3 дерева, итого 10 деревьев;
3-й день: Дмитрий срубает 2 дерева, Федор отдыхает, итого 12 деревьев;
4-й день: Дмитрий отдыхает, Федор срубает 3 дерева, итого 15 деревьев;
5-й день: Дмитрий срубает 2 дерева, Федор срубает 3 дерева, итого 20 деревьев;
6-й день: Дмитрий срубает 2 дерева, Федор отдыхает, итого 22 дерева;
7-й день: Дмитрий срубает 2 дерева, Федор срубает оставшееся 1 дерево, итого все 25 деревьев срублены.
Внимание! Тест из примера не подходит под ограничения для подзадач 2 и 3, но решение принимается на проверку только в том случае, если оно выводит правильный ответ на тесте из примера. Решение должно выводить правильный ответ на тест даже, если оно рассчитано на решение только каких-либо из подзадач 2 и 3.
Система оценивания и описание подзадач
Подзадача 1 (32 баллов)
1 ≤ X ≤ 1000, 1 ≤ A, B ≤ 1000, 2 ≤ K, M ≤ 1000.
Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены.
Подзадача 2 (10 баллов)
1 ≤ X ≤ 1018; X < K; X < M.
При решении этой подзадачи можно считать, что лесорубы не отдыхают. Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены.
Подзадача 3 (10 баллов)
1 ≤ X ≤ 1018.
Дополнительно к приведенным ограничениям выполняется условие K = M. Баллы за подзадачу начисляются только в случае, если все тесты успешно пройдены.
Подзадача 4 (48 баллов)
1 ≤ X ≤ 1018, 1 ≤ A, B ≤ 109, 2 ≤ K, M ≤ 1018.
В этой подзадаче 16 тестов, каждый тест оценивается в 3 балла. Баллы за каждый тест начисляются независимо.
Получение информации о результатах окончательной проверки
По запросу сообщается результат окончательной проверки на каждом тесте.
Формат входного файла
Входной файл содержит пять целых чисел, разделенных пробелами: A, K, B, M и X.
Формат выходного файла
Выходной файл должен содержать одно целое число — искомое количество дней.
Ограничения
1 ≤ A, B ≤ 109, 2 ≤ K, M ≤ 1018, 1 ≤ X ≤ 1018
Примеры тестов
№ Входной файл (forest.in) Выходной файл (forest.out)
1
2 4 3 3 25
7

Добавлено через 1 минуту
вход 2 4 3 3 25 выход 7
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.03.2015, 18:42
Ответы с готовыми решениями:

Сократить код ( Вырубка деревьев (Время: 1 сек. Память: 16 Мб Сложность: 46%)
всем привет решил написать код от 24-ой задачи с acmp.ru вот код #include &lt;fstream&gt; int main(){ std::fstream...

Хеш-массив на базе леса
Здравствуйте. Может кто подскажет... В общем, нужно построить хеш-массив на базе заданного леса. Но вот как именно хранить вершины в...

Программа моделирования экологической системы леса
9. Составить программу моделирования экологической системы леса, включающую в себя конечное число объектов. Описание программы: Процесс...

10
21 / 21 / 26
Регистрация: 17.03.2015
Сообщений: 119
29.03.2015, 20:03
Лучший ответ Сообщение было отмечено MuslimPalit как решение

Решение

Вот заготовка

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
#include <iostream>
 
using namespace std;
 
class Person
{
public:
    Person(int,int);
    ~Person();
    int cuttingSpeed; //A- Дима, В-Федя
    int restEachDay; //К-Дима, М- Федя
    bool isRest(int day)const {return (day%restEachDay==0)?1:0;}
 
private:
 
};
 
Person::Person(int cut,int rest)
{
    cuttingSpeed=cut;
    restEachDay=rest;
}
 
Person::~Person()
{
}
 
 
 
 
void main()
{
    Person Dima(2,4),Fed(3,3);
    int x= 100; // количество деревьев
    int currentCut=0;
    int currentDay=1;
 
    while (currentCut<=x)
    {
        if (!(Dima.isRest(currentDay)))currentCut+=Dima.cuttingSpeed;
        if (!(Fed.isRest(currentDay)))currentCut+=Fed.cuttingSpeed;
        if (currentCut<=x) currentDay++;
    }
    cout<<currentDay<<endl;
 
}
К ней надо прикрутить чтение и запись в файл.

Добавлено через 15 минут
С прикрученным вводом/выводом в файл

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
#include <iostream>
#include <fstream>
using namespace std;
 
class Person
{
public:
    Person();
    ~Person();
    int cuttingSpeed; //A- Дима, В-Федя
    int restEachDay; //К-Дима, М- Федя
    bool isRest(int day)const {return (day%restEachDay==0)?1:0;}
 
private:
 
};
 
Person::Person()
{
}
 
Person::~Person()
{
}
void main()
{
    Person Dima,Fed;
    int x;
    ifstream fin("forest.in");
    fin>>Dima.cuttingSpeed>>Dima.restEachDay>>Fed.cuttingSpeed>>Fed.restEachDay>>x;
    fin.close();
    int currentCut=0;
    int currentDay=1;
 
 
 
    while (currentCut<=x)
    {
        if (!(Dima.isRest(currentDay)))currentCut+=Dima.cuttingSpeed;
        if (!(Fed.isRest(currentDay)))currentCut+=Fed.cuttingSpeed;
        if (currentCut<=x) currentDay++;
    }
    ofstream fo("forest.out");
    fo<<currentDay;
    fo.close();
}
1
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
30.03.2015, 07:40  [ТС]
вау

Добавлено через 10 часов 0 минут
да это понятно

Добавлено через 13 минут
ответ 29? по первой проге так а вторая ошибку выдала

Добавлено через 3 минуты
"Вырубка леса.exe": Загружено: "C:\Windows\SysWOW64\msvcr100.dll", Невозможно найти или открыть файл PDB
Первый этап обработки исключения в "0x008e1193" в "Вырубка леса.exe": 0xC0000094: Integer division by zero.
Необработанное исключение в "0x008e1193" в "Вырубка леса.exe": 0xC0000094: Integer division by zero. __- Выдает во второй
0
21 / 21 / 26
Регистрация: 17.03.2015
Сообщений: 119
30.03.2015, 11:01
Файл создать надо)))
Вот c проверкой на наличие файла
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
void main()
{
    Person Dima,Fed;
    int x;
    ifstream fin("forest.in");
    if(!fin) cout<<"File not fount";
    else    
    { 
        fin>>Dima.cuttingSpeed>>Dima.restEachDay>>Fed.cuttingSpeed>>Fed.restEachDay>>x;
        fin.close();
        int currentCut=0;
        int currentDay=1;
 
 
 
        while (currentCut<=x)
        {
            if (!(Dima.isRest(currentDay)))currentCut+=Dima.cuttingSpeed;
            if (!(Fed.isRest(currentDay)))currentCut+=Fed.cuttingSpeed;
            if (currentCut<=x) currentDay++;
        }
        ofstream fo("forest.out");
        fo<<currentDay;
        fo.close();
    }
}
0
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
30.03.2015, 19:31  [ТС]
LaHaH, то есть файл уже присутствует, я наберу твою сейчас прогу посмотрим результат

Добавлено через 29 секунд
кольцевую линию попробуйте сделать

Добавлено через 43 минуты
ну это же одна программа получается а дает ответ только первая он с файлом
0
21 / 21 / 26
Регистрация: 17.03.2015
Сообщений: 119
30.03.2015, 23:05
Что-то я не понял. У меня все прекрасно работает.
0
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
31.03.2015, 07:34  [ТС]
ггггг ответ какой дает у тебя
0
21 / 21 / 26
Регистрация: 17.03.2015
Сообщений: 119
01.04.2015, 11:51
И так, при входных данных 2 4 3 3 20, ответ 6
0
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
01.04.2015, 21:12  [ТС]
а там 25 выход я думал несходняки
0
1 / 1 / 0
Регистрация: 20.07.2019
Сообщений: 7
05.08.2019, 13:34
Я перечситал и ответ должен быть 5, поясни, почему у тебя 6?
0
88 / 24 / 8
Регистрация: 30.03.2019
Сообщений: 174
12.12.2019, 20:28
Цитата Сообщение от LaHaH Посмотреть сообщение
Вот заготовка
Ты с этим кодов во время не сможешь уложиться
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2019, 20:28
Помогаю со студенческими работами здесь

Поиск остовного леса методом Соллина
Доброго времени суток. Передо мной встала задача найти остовной лес минимальной стоимости методом Соллина. Интернет предложил единственный...

Бесконечный цикл в задаче про вырубку леса
Вырубка леса Фермер Николай нанял двух лесорубов: Дмитрия и Федора, чтобы вырубить лес, на месте которого должно быть кукурузное поле....

Посчитать площадь и периметр участка леса по заданным сторонам.
Участок леса имеет форму равнобедренной трапеции. Посчитать площадь, периметр за заданными сторонами. Для этой задачи нужно написать код,...

Модель "Экосистема леса". Игра
Составить программу моделирования экологической системы леса, включающую в себя конечное число объектов. Описание программы: Процесс...

Вырубка деревьев
Король Флатландии решил вырубить некоторые деревья, растущие перед его дворцом. Деревья перед дворцом короля посажены в ряд, всего там...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru