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

Вырубка леса

29.03.2015, 18:42. Показов 7874. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru