Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2012, 19:30   #1
makskovalko
Пользователь
 
Аватар для makskovalko
 
Регистрация: 23.04.2012
Сообщений: 82
По умолчанию Олимпиадная задача - В банке находятся белые и черные зерна, их вынимают наугад, определить цвет оставшегося зерна

Здравствуйте! Помогите, пожалуйста, решить задачу. Вот условие:

В банке находятся белые и черные зерна. Каждый раз из банки вынимают наугад два зернышка. Если они одинакового цвета, то их выбрасывают, а в банки кладут черную зерно (черных зерен в достаточном количестве). Если зерна разного цвета, то черный выбрасывают, а белую возвращают в банки. Эти действия повторяют, пока не останется одна зерно.
Задание Напишите программу, которая по известным количеством черных и белых зерен определяет цвет последнего зернышка.
Входные данные. В единственной строке записаны два числа - количество белых и черных зерен.
Исходные данные. Единственная строка выходного текстового файла должна содержать цвет зерна, что осталась: white - если зерно белое, black - если зерно черная.
makskovalko вне форума Ответить с цитированием
Старый 23.04.2012, 21:25   #2
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

А что это за олимпиада и где можно удостовериться, что она уже закончилась?
s-andriano вне форума Ответить с цитированием
Старый 23.04.2012, 21:52   #3
makskovalko
Пользователь
 
Аватар для makskovalko
 
Регистрация: 23.04.2012
Сообщений: 82
По умолчанию

Это задание из областной олимпиады 2011-2012 гг. Она уже давно закончилась (ещё в феврале). Просто интересно узнать правильное решение этой задачи.
makskovalko вне форума Ответить с цитированием
Старый 23.04.2012, 21:54   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А программа зачем? При любом порядке выборки четность белых не меняется - их к-во или всегда четно, или всегда нечетно. И при любом способе выборки кол-во зерен уменьшается на 1. Отсюда следствие - если изначально белых четное к-во, то останется черное зерно, если нечетное - то останеться белое зерно.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.04.2012, 22:10   #5
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А программа зачем?
Так потому и олимпиадная.

Дается несколько тестов, по проценту прошедших судят о качестве программирования.
Среди тестов обязательно будет на достаточно большие числа и в условиях ограниченного времени на выполнение.

Как известно, прежде чем писать ЛЮБУЮ программу, ее следует осмыслить и, в частности, не нагружать процессор ненужной работой.
Это называется алгоритмической оптимизацией.
s-andriano вне форума Ответить с цитированием
Старый 24.04.2012, 09:01   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
В банке находятся белые и черные зерна.
ЧББ
Цитата:
Каждый раз из банки вынимают наугад два зернышка
ЧБ достали, Б осталось(пока!)
Цитата:
Если зерна разного цвета, то черный выбрасывают, а белую возвращают в банки
Б было, Б вернули
ББ достали (что осталось? пока)
Цитата:
Если они одинакового цвета, то их выбрасывают
в банке нет ничего. КАК ответить на вопрос задачи?
Цитата:
Эти действия повторяют, пока не останется одна зерно.
это первое замечание.
второй пример
при ТЕХ же исходных данных ЧББ
ББ достали выкинули, осталось Ч
корректное решение
НО исходные данные даже на таком малом числе дают неоднозначное решение
ВЫВОД либо задание неполное, либо оно некорректно.
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Старый 24.04.2012, 09:21   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

evg_m, почему же задача не однозначна? 2 зерна заменяются на одно по определенным правилам. Вы, похоже, невнимательно прочли условие.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 24.04.2012, 11:23   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

BDA, +1

evg_m, -1 (бывает и на старуху - проруха!)
как уже верно подметили, вы невнимательное прочитали условие задачи:
Цитата:
Если они одинакового цвета, то их выбрасывают, а в банки кладут черную зерно
что же касается правильного решения, то его уже выше озвучил Аватар

ПОЛНОЕ решение задачи (c) Аватар:
Код:
var CntWhite, CntBlack : longint;
begin
  assign(input,'input.txt');
  reset(input);
  assign(output,'output.txt');
  rewrite(output);
  Readln(CntWhite, CntBlack);
  if odd(CntWhite) 
    then WriteLn('white')
    else WriteLn('black')
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.04.2012, 13:39   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

да согласен пропустил!
Цитата:
то их выбрасывают, а в банки кладут черную зерно (черных зерен в достаточном количестве)
ЧББ
Ч (ББ)
ЧЧ
(ЧЧ)
Ч

ЧББ
(чБ) Б
ББ
(ББ)
Ч
программа — запись алгоритма на языке понятном транслятору
evg_m на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчет зерна монитора (Delphi) К.Марат Помощь студентам 2 29.11.2011 22:16
Олимпиадная задача Sanek_ntsk Помощь студентам 4 09.11.2011 23:03
Олимпиадная задача. masashama Общие вопросы C/C++ 19 27.10.2011 14:52
Паскаль.Записи. определить клиента имеющего максимальный вклад в банке ChelseaFan Помощь студентам 2 28.11.2010 14:38