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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2011, 14:03   #1
clasterit
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 17
Вопрос Решить олимпиадные задачки

1. Зёрна
Имя входного файла: input.txt
мя выходного файла. output.txt
В банке находятся белые и черные зернышки. Каждый раз из банки вынимают наугад два зерна. Если они одинакового цвета, то их выбрасывают, а в банки кладут черную зерно (черных зерен в достаточном количестве). Если же зерна разного цвета, то черную выбрасывают, а белую возвращают в банки. Эти действия повторяют, пока не останется одна зернышко.
Задание Напишите программу, которая по известным количеством черных и белых зерен определяет цвет последнего зерна.
Входные данные. В единственной строке записаны два числа - количество белых и черных зерен.
Выходные дате, Единственная строка выходного текстового файла должно содержать цвет зерна, оставшуюся: white - если зерно белая, black - если зерно черная.
Пример входных и выходных данных:


2. Крупнейшее произведение
Имя входного файла: input.txt
мя выходного файла. output.txt
Максимальное время работы на одном тесте: 5 секунд.
Дано N целых чисел.
Задачи. Необходимо выбрать из N целых чисел три таких числа, произведение которых максимальный
Входные данные. Первая строка входного файла содержит одно число N - количество чисел в последовательности (3 <N <106). Во второй строке записано саму последовательность: N целых чисел, по модулю не превышают 30000.
Выходные дате. В выходной файл выведите Три искомых числа в произвольном порядке. Если существует несколько различных троек чисел, дающих максимальный произведение, то выведите произвольную из них
Пример входных и выходных данных:



На олимпиаде именно две эти не смог решить(первую решил кое-как - проходила 3 теста из 5, постоянно писала "блек")
Поможете? Сказали разобраться, но голова не варит((

Последний раз редактировалось clasterit; 23.10.2011 в 17:53.
clasterit вне форума Ответить с цитированием
Старый 23.10.2011, 17:19   #2
grom333
Форумчанин
 
Аватар для grom333
 
Регистрация: 21.10.2008
Сообщений: 337
По умолчанию

можно краткий перевод 3-ей?
Лучше быть последним из львов, чем первым среди шакалов.
Мой чат
community on struggle with zoomics
grom333 вне форума Ответить с цитированием
Старый 23.10.2011, 17:48   #3
clasterit
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от grom333 Посмотреть сообщение
можно краткий перевод 3-ей?
немного не понял вопроса

2 перевел. Забыл из переводчика забрать))

Последний раз редактировалось clasterit; 23.10.2011 в 17:53.
clasterit вне форума Ответить с цитированием
Старый 23.10.2011, 17:50   #4
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

С украинского на русский перевести)
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 23.10.2011, 17:55   #5
clasterit
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от Leshii Посмотреть сообщение
С украинского на русский перевести)
сделано. Просто немного с номером ошиблись
не заметил, что на украинском просто(вроде как переводил, но видимо забыл сюда копирнуть)
clasterit вне форума Ответить с цитированием
Старый 25.10.2011, 11:19   #6
clasterit
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 17
По умолчанию

никто не знает?
clasterit вне форума Ответить с цитированием
Старый 25.10.2011, 11:42   #7
Leshii
Форумчанин
 
Регистрация: 26.07.2011
Сообщений: 376
По умолчанию

Знать возможно и знаем да вот лень делать.
Вот если бы ты сам что-то тут проделывал и оживлял сам процесс то возможно бы и подключились к решению задачи.
Люблю на ты.Я человек простой
Leshii вне форума Ответить с цитированием
Старый 25.10.2011, 14:50   #8
clasterit
Пользователь
 
Регистрация: 23.10.2011
Сообщений: 17
По умолчанию

Leshii, сам-то и оживляю))
Такс. Попробовал сделать через деление(мод) - программка запахала!))
Кому интересно:
Код:
program zerninu;

var S : string;
I, O : Text;
B, W : Integer;

begin

  Assign (I, 'C:\olimp\1\input.txt') ;
  Assign (O, 'C:\olimp\1\output.txt');
  reset(I);
  rewrite(O);
     read(W, B);
  if (B mod 2) = 0
    then writeln(O,'BLACK')
    else writeln(O,'WHITE');
  close(I);
  close(O);
     Readln(S);

end.
Пол пути пройдено...)
Может кто-то имеет какие-то мысли на счёт 2 задачки?)
clasterit вне форума Ответить с цитированием
Старый 25.10.2011, 15:21   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от clasterit
Такс. Попробовал сделать через деление(мод) - программка запахала!))
Код:
if (B mod 2) = 0
    then writeln(O,'BLACK')
Пол пути пройдено...)
clasterit, мне бы Ваш оптимизм...
Вы уверены, что задача решена правильно?!
Рассмотрите решение, если число белых W равно нулю, а число чёрных B равно 3.
(программа выдаст WHITE).
Вы уверены, что в корзине останется БЕЛОЕ зёрнышко ?..

ДОБАВЛЕНО

впрочем, идея решения абсолютно правильная. Только на нечётность надо проверять количество БЕЛЫХ зёрнышек.
Если их (белых) чётное число, то останется в итоге ЧЁРНОЕ,
если их (белых) нечётное число - то останется БЕЛОЕ.
ну и добавить проверку, когда в начале сразу ОДНО зёрнышко.
т.е. я бы предолжил такой вариант

Код:
program zerninu;

var 
I, O : Text;
cBlack,  {количество чёрных}
cWhite  {количество белых}
          : Integer;
begin
  Assign (I, 'C:\olimp\1\input.txt') ;
  Assign (O, 'C:\olimp\1\output.txt');
  reset(I);
  rewrite(O);
  read(cWhite, cBlack);
  if (cBlack=1) and (cWhite=0) then writeln(O,'BLACK');
  if (cBlack=0) and (cWhite=1) then writeln(O,'WHITE');
  if (cBlack>1) or (cWhite>1) then
    if  odd(cWhite)
      then writeln(O,'WHITE')
      else writeln(O,'BLACK');
  close(I);
  close(O);
  Readln;
end.
p.s. разумеется, вместо odd(cWhite) можно написать проверку на нечётность и через mod: (cWhite mod 2) = 1

Последний раз редактировалось Serge_Bliznykov; 25.10.2011 в 15:49.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.10.2011, 15:55   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

по второй задаче смотрите алгоритм тут:
Найти числа произведение которых самое большое
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3 олимпиадные задачки ZePr Паскаль, Turbo Pascal, PascalABC.NET 2 13.10.2011 18:09
Помогите решить задачки Newum Помощь студентам 6 02.07.2009 14:12
Задачки на Паскале помогите пожалуйста решить 2 задачки, а то отчислят. плиз VADOS2009-1 Помощь студентам 0 03.06.2009 18:11
Помогите решить задачки по С++ Gavrik Помощь студентам 6 20.02.2009 23:49
ПОМОГИТЕ РЕШИТЬ ЗАДАЧКИ! Ватрушка90 Microsoft Office Excel 5 04.12.2008 21:48