М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
трифон1
трифон1
04.09.2021 11:30 •  Информатика

ОЧЕНЬ, ОЧЕНЬ И ОЧЕНЬ Покупка
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Айтал успешно участвовал в большом количестве соревнований по программированию и с призов
смог накопить N рублей. Он давно уже надумал купить себе новый компьютер, а вместе с ним —
монитор и принтер. У него есть одноразовый промокод от популярного интернет-магазина, который
дает разные скидки на различные категории товаров: X% — на компьютеры, Y % — на мониторы,
Z% — на принтеры. Однако по условиям акции промокод можно применить только к одному товару.
При этом после применения промокода стоимость товара округляется вниз до целого числа.
Компьютер стоит K рублей, монитор — M рублей, а принтер — P рублей.
Сможет ли Айтал на свои деньги купить все три товара?
Формат входных данных
В единственной строке дано 7 целых чисел N, K, M, P (0 6 N, K, M, P 6 106
), X, Y , Z
(0 6 X, Y, Z 6 100).
Формат выходных данных
Выведите одно число — максимальную сумму денег, которая останется у Айтала в случае, если
Айталу удастся купить все три товара, иначе выведите -1.
Система оценки
Данная задача содержит две подзадачи. за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены. Для каждой следующей подзадачи все предыдущие являются необходимыми.
Подзадача 1 ( : 20)
X = 0, Y = 0, Z = 0
Подзадача 2 ( : 80)
Дополнительных ограничений нет
Пример
стандартный ввод стандартный вывод
100000 60000 20000 20000 0 0 0 0

👇
Ответ:
tdv84
tdv84
04.09.2021

var

 n,k,m,p,x,y,z,s,c: real;

 f: text;

begin

 read(n,k,m,p,x,y,z);

 assign(f, 'C:\Users\Cergey\Desktop/input.txt');

 rewrite(f);

 writeln(f, n,k,m,p,x,y,z);

 close(f);

 assign(f, 'C:\Users\Cergey\Desktop/output.txt');

 rewrite(f);

 c:=random(2);

 if c=0 then c:=x;

  if c=1 then c:=y;

   if c=2 then c:=z;

s:=n-k-m-p+c;

if s>0 then write(s) else write(-1);

 writeln(f, s);

 close(f);

end.

Объяснение:

задачка немного недоработана в плане скидки. Проценты надо высчитывать, я просто ее вычитал из цены. Однако, скидка выбирается случайным образом, ей присваивается значение x или y или z

создается файл input.txt и output.txt в один записываются все числа (7 штук) во второй записывается ответ. Для корректной работы нужно поменять путь к файлу, выделенный в программе полужирным. Для этого любой файл с рабочего стола правой кнопкой мыши нажать, и в свойствах скопировать путь к нему, вставить вместо выделенного

4,7(16 оценок)
Открыть все ответы
Ответ:
ГОСУдарство                                                                  Столица
Австрия                                                                             Вена
Бельгия                                                                              Брюссель
Великобритания                                                                   Лондон
Германия                                                                               Берлин
Ирландия                                                                               Дублин
4,5(88 оценок)
Ответ:
Зюна
Зюна
04.09.2021
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
procedure MatInput(a:array[,] of integer);
begin
  Writeln('Вводите элементы матрицы построчно, в конце нажимая Enter');
  for var i:=0 to Length(a,0)-1 do begin
    Write(i+1,': ');
    for var j:=0 to Length(a,1)-1 do Read(a[i,j]);
    end
end;

procedure MatPrint(a:array[,] of integer);
begin
  for var i:=0 to Length(a,0)-1 do begin
    for var j:=0 to Length(a,1)-1 do Print(a[i,j]);
    Writeln
    end
end;

function IsEqual(a:array[,] of integer; j1,j2:integer;
  flag:array of boolean):boolean;
// равны ли столбцы с индексами j1 и j2
begin
  if flag[j2]=False then begin
    Result:=True;
    for var i:=0 to Length(a,0)-1 do
      if a[i,j1]<>a[i,j2] then begin Result:=False; Break end;
    flag[j2]:=Result
    end
end;

begin
  var n:=ReadInteger('Задайте число строк (столбцов) матрицы:');
  var a:array[,] of integer;
  var m:=ArrFill(n,False);
  SetLength(a,n,n);
  MatInput(a);
  Writeln('*** Принятая матрица ***');
  MatPrint(a);
  var k:=1;
  for var i:=0 to n-2 do
    for var j:=i+1 to n-1 do
      if IsEqual(a,i,j,m) then Inc(k);
  if k>1 then Writeln('Количество совпадающих столбцов равно ',k)
  else Writeln('нет совпадающих столбцов')
end.

Тестовое решение
Задайте число строк (столбцов) матрицы: 3
Вводите элементы матрицы построчно, в конце нажимая Enter
1: 1 2 2
2: 3 5 5
3: 2 2 2
*** Принятая матрица ***
1 2 2
3 5 5
2 2 2
Количество совпадающих столбцов равно 2
4,5(35 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ