Решение лабораторных, контрольных и т.д. на С++

  • Автор темы Автор темы European
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
Помогите с прогой плз!

Задача B. Книга

Имя входного файла: b.in
Имя выходного файла: b.out
Максимальное время работы на одном тесте: 1 секунда
Максимальный объем используемой памяти: 64 мегабайта

Оргкомитет Московской олимпиады по информатике решил издать книгу с решениями олимпиадных задач сразу на двух языках - на Паскале и на Си. При этом тексты решений на Паскале решили напечатать с одной стороны книги, а на Си - с другой стороны. Таким образом книгу стало можно читать как с начала, так и с конца, предварительно ее перевернув.

Тексты решений на Паскале заняли N первых страниц, которые пронумеровали от 1 до N. А тексты на Си - M последних страниц, которые пронумеровали числами от 0 (последняя страница) до M-1.

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

Например, если N=5 и M=3 страницы книги идут в следующем порядке. Сначала страницы решений на Паскале: 1 2 3 4 5, затем - страницы решений на Си - 2 1 0. Здесь на первый лист попадают страницы номер 1 и 2 решений на Паскале, на второй - 3 и 4, на третий - страница 5 решений на Паскале и страница 2 решений на Си, и, наконец, на четвертый лист - страницы 1 и 0 решений на Си (ровно в таком порядке!).

Если же, например, N=2 и M=3, то на первом листе будут напечатаны страницы 1 и 2 решений на Паскале, на втором - пустая страница и страница 2 решений на Си, на третьем - страницы 1 и 0 решений на Си.

Напишите программу, которая по номеру листа определяет, решения на каком языке и какие номера страниц должны быть напечатаны на этом листе.

Формат входных данных

Во входном файле содержатся три числа: N, M и номер листа P (1≤N≤1000, 1≤M≤1000, 1≤P≤1000).

Формат выходных данных

Выходной файл должен содержать две строки. В первой строке должно идти описание той стороны листа, которая будет идти в книге раньше, во второй строке - описание второй стороны листа.

Описание страницы должно состоять из заглавной английской буквы P (если это страница решения на Паскале) или C (если это страница решения на C), ровно одного пробела и номера соответствующей страницы.

Если страница должна быть оставлена пустой, то в соответствующей строке должны быть напечатаны прочерки (символ минус "-") как вместо буквы, обозначающей язык решений, так и вместо номера страницы (см. примеры).

Если листа с таким номером в книге не будет вообще, в обеих строках должны идти описания, соответствующие пустой странице.
 
это элементарно. стоит только подумать немного. тут арифметика.

действия с числами N, M и P
 
<!--QuoteBegin-gamecreator+12:01:2008, 20:03 -->
<span class="vbquote">(gamecreator @ 12:01:2008, 20:03 )</span><!--QuoteEBegin-->это элементарно. стоит только подумать немного. тут арифметика.

действия с числами N, M и P
[snapback]93245" rel="nofollow" target="_blank[/snapback]​
[/quote]

Можеш поподробнее? Пожалуйста
 
ты над ней хоть думал? она же легкая!
 
<!--QuoteBegin-gamecreator+12:01:2008, 20:08 -->
<span class="vbquote">(gamecreator @ 12:01:2008, 20:08 )</span><!--QuoteEBegin-->ты над ней хоть думал? она же легкая!
[snapback]93247" rel="nofollow" target="_blank[/snapback]​
[/quote]

Да думал! Чет я туплю в последнее время? Если нетрудно, помоги! Еще желательно код! Плиииз

Для: gamecreator
ПОМОГИ УМОЛЯЮ(думаю больше никто не сможет помочь)
 
ну код и по формулам можно написать.
если 2P-1<N, то страницы на паскале и номера их 2P-1 и 2P
если 2P-1==N и N+M четное число, то страница на паскале с номером 2P-1 и страница на си с номером M-1
если 2P-1==N и N+M нечетное число, то страница на паскале с номером 2P-1 и другая страница пустая
если 2P-2==N и N+M нечетное число, то страница пустая и страница на си с номером M-1
если 2P-1>=N+((N+M)%2), то обе страницы на си и номера их N+M+((N+M)%2)-2P+1 и N+M+((N+M)%2)-2P

ПОМОГИ УМОЛЯЮ(думаю больше никто не сможет помочь)
если я не ответил и нахожусь в теме, значит решаю. хотя на этом форуме вроде нельзя посмотреть кто тему смотрит.
 
Для: gamecreator
А не мог бы написать в коде? Я чет стал полным ламмером(хотя и про никогда не был)! Если надо, я могу заплатиь!
 
Зделал как ты сказал! Все ОК, но прога запарываеца на одном месте - Когда попадаеца 1 пустая страница! Она выдает аж 4(!) ответа! Что неверно в каком то условии?
 
День Добрый. Вообщем такое дело, не могу справиься с задачками, это мой допуск к экзамену ))
если есть возможность помогите пожалуйста...
*************************
В каждом из некоторого количества целочисленных массивов
1) найти такую тройку элементов, что одно из чисел тройки равно сумме двух других чисел тройки;

2) найти пару элементов с наименьшим значением их наименьшего общего кратного;

Выдать сообщение, если элементы с указанными свойствами не обнаружены.
***********************

C++ MSVisual Studio 2005
 
Для: gamecreator

да я пока с трудом соображаю, что и как) не могли бы вы помочь...или хотя бы алгоритм примерный накидать..
 
1) проходишься по массиву тремя вложенными циклами. внутри проверяешь: если все индексы разные и один элемент массива равен сумме двух других, то сохраняешь их индексы или выводишь куда-нибудь, ты не указал что тебе надо. чтобы выдать сообщение об отсутствии используй флаг, который при выполнении условия установи в 1. после циклов в зависимости от флагов выводи сообщение.

2)устанавливаешь индексы элементов что дают наименьшее НОК в 0 и 1. проходишься двумя вложенными циклами по массиву. если индексы не равны, то находишь НОК этих чисел и сравниваешь с НОК чисел которые ты запомнил. если меньше, то сохраняешь текущие индексы.
 
opium ,
Напишите программу, которая по номеру листа определяет, решения на каком языке и какие номера страниц должны быть напечатаны на этом листе.

Маленькая программка получилась :)
 

Вложения

  • kniga.c
    kniga.c
    2,6 КБ · Просмотры: 307
Вводиться предложение ввиде строки. Слов в предложении разделяются между собой пробелом или запятой. Для решения задачи применять функции из библиотеки string.h.

Напечатать все слова, которые совпадают с ее первым словом.
 
и че, пашет? я ему уже решил. могу выложить исходник
 
Привет все кто может помогите пожалуйста если модежете.
1. код быстрой сортровки.
Спасибо!!!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!