Статистика
Всего в нашей базе более 4 327 660 вопросов и 6 445 973 ответов!

Приближается очередная олимпиада по программированию, и товарищи A и B решили устроить совместную тренировку. Они выбрали n задач и договорились,

10-11 класс

что тренировка продлится t минут.Для каждой задачи известно время si (i = 1; 2; : : : ; n), которое потребуется на её решение. Уровень подготовки у товарищей A и B одинаковый, и если товарищ A решает некоторую задачу за время s, то и товарищ B решает эту задачу за это же время s.Товарищ A начал решать задачи с первой и будет решать их подряд, двигаясь от первой к последней и не пропуская ни одной. Товарищ B начал решать задачи с последней и тоже будетрешать их подряд, двигаясь от последней к первой и не пропуская ни одной.Ваша же задача — определить, сколько задач решат в течение тренировки товарищи A и B.В качестве ответа выведите два целых числа: количество задач, которые решит товарищ A, и через пробел — количество задач, которые решит товарищ B.

Формат входного файла

В первой строке содержатся через пробел два целых числа — n (1 n 100) и t (1 t 1000).
Во второй строке содержатся n целых чисел s1; s2; : : : sn (1 si 1000; i = 1; 2; : : : ; n), также отделённые друг от друга пробелом.

Формат выходного файла

В единственной строке выходного файла содержатся два целых числа через пробел — количество задач, которые решит товарищ A, и количество задач, которые решит товарищ B соответственно.

На Паскаль :)

иванМирный 23 дек. 2013 г., 8:08:21 (10 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Qmailcom696
23 дек. 2013 г., 9:29:26 (10 лет назад)

var s: array[1..100] of integer;
i, n, t, a_t, b_t, a_n, b_n : integer;
Begin
  read(n,t);
  for i := 1 to n do read(s[i]);

  for i := 1 to n do begin
   if a_t + s[i] <= t then do begin
     a_n := a_n + 1;
     a_t := a_t + s[i];
   end;
   if b_t + s[n-i+1] <= t then do begin
     b_n := b_n + 1;
     b_t := b_t + s[n-i+1];
   end;
  end;
  writeln(a_n:3, b_n:3);
End.

+ 0 -
Викушко
23 дек. 2013 г., 12:11:39 (10 лет назад)

Program Zadacha;
Const n = 1; t = 2; min = 1; nMax = 100; tMax = 1000;
Var text: Text;
vars: Array [min..2] Of Integer;
s: Array Of Integer;
i, an, bn, at, bt: Integer;
BeginAssign(text, 'd:\input.txt');
Reset(text);
i := 1;
While Not Eof(text) Do
Begin
If i > 2 Then
Read(text, s[i - 2])
Else
Read(text, vars[i]);
i := i + 1;
If i = 3 Then
SetLength(s, vars[n] + 1);
If (i - 2) > vars[n] Then
Break;
End;
Close(text);
If ((vars[n] < 1) Or (vars[n] > nMax)) Or ((vars[t] < 1) Or (vars[t] > tMax)) Then
WriteLn('Неверные входные данные! Завершение работы программы.')
Else
Begin
For i := 1 To vars[n] Do
Begin
at := at + s[i];
If (at <= vars[t]) And ((an + bn) < vars[n]) Then
an := an + 1;
bt := bt + s[a[n] - i + 1];
If (bt <= vars[t]) And ((an + bn) < vars[n]) Then
bn := bn + 1;
End;
Assign(text, 'd:\output.txt');
Rewrite(text);Write(text, an, ' ');
Write(text, bn, ' ');
Close(text);
End;
ReadLn;
End.

Ответить

Другие вопросы из категории

помогите решить задачки по Паскалю "4": Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее

использования. Пример: Введите число: 100 сумма = 5050

"5":

Составить функцию, которая определяет, сколько зерен попросил положить на N-ую клетку изобретатель шахмат (на 1-ую – 1 зерно, на 2-ую – 2 зерна, на 3-ю – 4 зерна, …) Пример: Введите номер клетки: 28 На 28-ой клетке 134217728 зерен.

Ребят, выручайте!!! Задание по Pascal. 1. В массиве А[N] занесены натуральные числа. Найти сумму тех элементов, которые кратны данному К. 2. В

целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.

Сколько существует автомобильных номеров, содержащих три буквы и 5 цифр, если используется всего

9 букв и 7 цифр? Требуемый для записи этого объем информации?

Читайте также

В городской олимпиаде по математике

по 5 и 6 классам приняли участие 59
детей. Каждому участнику
присваивается шифр - произвольное
число, оканчивающееся номером
класса, в котором он учится, оказалось,
что сумма шифров пятиклассников
равна сумме шифров шестиклассников.
На следующий год в олимпиаде по 6 и 7
классам приняли участие эти же 59
ребят. Могли ли суммы шифров этих
шестиклассников и семиклассников
оказаться равными? Ответ обоснуйте

Трое друзей – Илья, Костя и Серёжа – принимали участие в олимпиаде по программированию, и один из них занял первое место. Когда ребята пришли в школу,

учительница спросила, кто из них победил. Илья сказал: « Это я победил, а не Костя или Серёжа ». Костя сказал: « Это Серёжа победил, а Илья всегда лжёт ». Серёжа сказал: « Победил не Костя, а Илья всегда говорит правду ». Учительница знает, что один из ребят всегда говорит правду, другой – всегда лжёт, а третий говорит через раз то ложь, то правду, но не знает, кто из них правдив, а кто – нет. кто победитель?

25 баллов инфа?

Муниципальный этап олимпиады по информатике проводился для учеников
7–11-х классов. Все ученики участвовали в общем конкурсе. Каждый
участник олимпиады мог набрать от 0 до 400 баллов. По положению об
олимпиаде победителем признаётся участник, набравший наибольшее
количество баллов, при условии, что им набрано больше половины
возможных баллов. Победителей может быть несколько, если это количество
баллов наберут несколько человек; а может и не быть совсем, если никто не
наберёт больше половины.
Напишите эффективную по времени работы и по используемой памяти
программу (укажите используемую версию языка программирования,
например Borland Pascal 7.0), которая будет определять фамилию и имя
лучшего участника, не ставшего победителем олимпиады. Если следующий
за баллом победителей один и тот же балл набрали несколько человек или
если победителей нет, а лучших участников несколько (в этом случае они же
являются искомыми), то должно выдаваться только число искомых
участников. Гарантируется, что искомые участники (участник) имеются.
На вход программе сначала подаётся число участников олимпиады N
(N<10000).
В каждой из следующих N строк находится результат одного из участников
олимпиады в следующем формате:
<Фамилия> <Имя> <класс> <баллы>,
где <Фамилия> – строка, состоящая не более чем из 20 непробельных
символов; <Имя> – строка, состоящая не более чем из 15 непробельных
символов; <класс> – число от 7 до 11; <баллы> – целое число от 0 до 400
набранных участником баллов. <Фамилия> и <Имя>, <Имя> и <класс>,
а также <класс> и <баллы> разделены одним пробелом. Пример входной
строки:
Иванов Пётр 10 275
Программа должна выводить через пробел Фамилию и Имя искомого
участника или их число. Пример выходных данных:
Кузнецов Иван
Второй вариант выходных данных:
4

Кто из учеников идёт на олимпиаду по физике, если известно следующее:

1. Если Миша идёт, то идёт Аня, но не идёт Маша.
2. Если Маша не идёт на олимпиаду, то идёт Аня, но не идёт Миша.
3. Если Аня идёт, то идёт Миша, но не идёт Маша.

Как известно, на вопрос о том, сколько у него учеников, древнегреческий учёный Пифагор отвечал так: "Половина моих учеников изучает математику,

четвертая часть изучает природу, седьмая часть проводит время в молчаливом размышлении, остальную часть составляют 3 девы".

Секретарь олимпиады на вопрос: "Сколько зарегистрировано участников олимпиады по информатике?", отвечал подобно Пифагору: "K-тая часть участников начала решать первую задачу, M-тая часть – вторую, а N-тая – третью. В то же время D участников решают проблему: "С чего начать?". Ваша задача определить количество участников олимпиады S или вывести -1, если секретарь ошибся.

Технические условия

Входные данные

В единственной строке через пробел числа K, N, M, D. 1K, N, M, D1000.

Выходные данные

Вывести количество участников олимпиады S, или -1, если секретарь ошибся в своём сообщении.



Вы находитесь на странице вопроса "Приближается очередная олимпиада по программированию, и товарищи A и B решили устроить совместную тренировку. Они выбрали n задач и договорились,", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.