tarasbulba204
20.01.2023 01:38

Задача №1851. Деньги Фирма Julick&Co ведет учет своих доходов и расходов. Но главный бухгалтер этой фирмы не любит математику, поэтому всякую сумму денег, которую фирма получает или отдает, он характеризует некоторым признаком. Например, сумму денег от 5 до 10 рублей он может охарактеризовать словом "МАЛО", а от 7 до 60 рублей словом "МНОГО". Время от времени он пересчитывает деньги и записывает признак суммы, которая имеется у фирмы. Недавно налоговая инспекция заинтересовалась доходами данной организации. Она хочет узнать, какая минимальная и максимальная сумма денег может быть сейчас у этой фирмы или выяснить, что имеется ошибка в ее записях. Известно, что по законам страны, где развиваются события, в любой момент времени организация должна обладать неотрицательной суммой денег.

Входные данные
Первая строка входного файла содержит K (1≤K≤100) – количество признаков, которые бухгалтер использует для описания различных сумм денег. На следующих K строках содержатся соответствующие признаки Si и числа Mini и Maxi. Si - слово, состоящие не более чем из 20 латинских букв, отделенное от последующих чисел одним пробелом, Mini и Maxi - целые положительные числа (1≤Mini≤Maxi≤1000), разделенные одним пробелом. Следующая строка содержит количество денег, которое было у фирмы в начале ее деятельности – целое число . Затем следует число N – количество записей в бухгалтерской книге фирмы Julick&Co (1≤N≤100). Следующие N строк содержат записи в следующем формате: первый символ строки из множества {"+", "-", "!"} означает вид операции – доход, расход или подсчет денег соответственно. Непосредственно за этим символом (без пробелов) следует признак, характеризующий сумму денег, использованную в операции.

Выходные данные
Если в учетных записях содержится ошибка, выведите в выходной файл число −1, в противном случае выведите числа Min и Max - наименьшую и наибольшую сумму денег, которая может быть у фирмы Julick&Co.

Примеры тестов
входные данные
3
LITTLE 1 5
MIDDLE 4 10
BIG 18 50
11
3
+MIDDLE
!BIG
-LITTLE
выходные данные
13 20

На паскале

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
dadasova
19.08.2022 11:32
1. Как я понял, нужно перевести 297(10) в ...(2),...(8) и ...(16).
Тогда:
- 10-ная : 297;
- 2-ная : 100101001;
- 8-ная : 451;
- 16-ная : 129.

2.Как я понял нужно показать как перевести 100101001(2-ная) в 8-ная через триады.
Тогда :
100 101 001
1) 100 = 2^2 = 4;
2) 101 = 2^2 + 2^0 = 4 + 1 = 5;
3) 001 = 2^0 = 1;
Тогда 100101001 (2-ная) = 451(8-ная).

3. 16 = 2^4 = 10000(2-ная);
32 = 2^5 = 100000(2-ная);
64 = 2^6 = 1000000(2-ная);
128 = 2^7 = 10000000(2-ная).
Выведем правило : Если мы переводим в двоичную СС числа, являющиеся степенями двойки, то мы ставим везде ноли, но единицу ставим в том разряде двоичного числа, в который мы возвели двойку, чтобы получить 8;16 и т.п(32 - это 5-ая степень двойки, следовательно мы ставим единицу на 5-ый разряд, а в другие разряды ставим нули : 100000(1 на 5 разряде).
0,0(0 оценок)
Ответ:
camcalol
08.08.2020 10:29
Uses  crt;const  nmax=100;var  a1,a2: array[1..nmax] of integer;  n,i,b,k,s: integer;begin  randomize;  clrscr;  repeat    write('Введите размер массива n (n in [1..',nmax,']): ');    readln(n);    write('Введите число B (0<B<100): ');    readln(b);  until (n in [1..nmax]) and (b in [1..99]);  writeln('Массив A1');  for i:=1 to n do  begin    a1[i]:=random(99);    write(a1[i]:4);    if a1[i]>b then    begin      inc(k);      a2[k]:=i;      s:=s+a1[i];    end;  end;  writeln;  writeln('Среднее элеметов, больших B = ',s/k:0:2);  writeln('Массив A2:');  for i:=1 to k do write(a2[i]:4);  readln;end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота