
E. Два бандита Ограничение времени 1 секунда Ограничение памяти 16Mb Ввод стандартный ввод или
input.txt Вывод стандартный вывод или output.txt Бандиты Гарри и Ларри отдыхали на природе. Решив пострелять, они выставили на бревно несколько банок из-под кока-колы (не больше 10). Гарри начал простреливать банки по порядку, начиная с самой левой, Ларри — с самой правой. В какой-то момент получилось так, что они одновременно прострелили одну и ту же последнюю банку. Гарри возмутился и сказал, что Ларри должен ему кучу денег за то, что тот лишил его удовольствия прострелить несколько банок. В ответ Ларри сказал, что Гарри должен ему еще больше денег по тем же причинам. Они стали спорить кто кому сколько должен, но никто из них не помнил сколько банок было в начале, а искать простреленные банки по всей округе было неохота. Каждый из них помнили только, сколько банок прострелил он сам. Определите по этим данным, сколько банок не прострелил Гарри и сколько банок не прострелил Ларри. Формат ввода В единственной строке входного файла INPUT.TXT записано 2 числа — количество банок, простреленных Гарри и Ларри соответственно. Формат вывода В файл OUTPUT.TXT выведите 2 числа — количество банок, не простреленных Гарри и Ларри соответственно. Пример 1 Ввод Вывод 4 7 6 3 C++ НАПИШИТЕ КОД ПОЖАЛУЙСТА

Ответы на вопрос

#include <iostream> // header input/output streams
#include <fstream> // header для работы с файлами
using std::ifstream; // для работы с файлом input.txt
using std::ofstream; // для работы с файлом output.txt
using std::cin; // для работы cin
using std::cout; // для работы cout
using std::endl; // для работы перевода на новую строку endl
int main(){
ifstream in_file;
ofstream out_file;
try{
in_file.open("input.txt");
out_file.open("output.txt");
}
catch(std::exception& e){
cout << e.what() << endl;
}
unsigned int a,b;
in_file >> a >> b;
unsigned int sum = a+b -1;
cout << sum;
out_file << sum - a << ' ' << sum-b << endl;
}



Для решения данной задачи, нужно найти общее количество банок, которое было изначально, зная сколько банок прострелил каждый из бандитов.
Давайте обозначим количество банок, изначально на бревне, как N. По условию, Гарри прострелил h
банок, а Ларри прострелил l
банок. Также известно, что они одновременно прострелили одну и ту же последнюю банку.
Мы знаем, что h + l
банок прострелено всего. Нам нужно найти N - h
и N - l
- количество банок, которые не прострелил Гарри и Ларри соответственно.
Сначала найдем общее количество банок N:
makefileN = h + l - 1
Теперь найдем количество банок, которые не прострелил Гарри и Ларри:
mathematicaБанок не прострелил Гарри = N - h = (h + l - 1) - h = l - 1
Банок не прострелил Ларри = N - l = (h + l - 1) - l = h - 1
Теперь, осталось только записать код на C++:
cpp#include <iostream>
#include <fstream>
using namespace std;
int main() {
// Открываем файлы для ввода и вывода
ifstream input("INPUT.TXT");
ofstream output("OUTPUT.TXT");
// Переменные для хранения количества банок, простреленных Гарри и Ларри
int h, l;
input >> h >> l;
// Находим общее количество банок
int N = h + l - 1;
// Находим количество банок, не простреленных Гарри и Ларри
int not_shot_by_harry = l - 1;
int not_shot_by_larry = h - 1;
// Записываем результат в файл вывода
output << not_shot_by_harry << " " << not_shot_by_larry << endl;
// Закрываем файлы
input.close();
output.close();
return 0;
}
После выполнения кода, в файле "OUTPUT.TXT" будут содержаться числа, представляющие количество банок, не простреленных Гарри и Ларри соответственно.


Похожие вопросы







Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili