МАТЕМАТИЧЕСКИЕ ОСНОВЫ ИНФОРМАТИКИ
Суббота, 15.12.2018, 06:11
ГлавнаяРегистрацияВход Приветствую Вас Гость | RSS

Меню сайта

Категории раздела
Уравнения и неравенства [1]
Модуль [2]
Примеры [3]
Практика [1]
Задание 3 [1]

Наш опрос
Какой язык программирования Вы изучаете
Всего ответов: 954

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа


Главная » Файлы » ЗАНЯТИЕ » Примеры

0042. Решить неравенство 1
30.10.2012, 18:45

0042. Решить неравенство 1

 

Имя входного файла

input.txt

Имя выходного файла

output.txt

Максимальное время работы на одном тесте

2 секунды

Ограничение по памяти

64 МБ

Найти количество целых решений, удовлетворяющих неравенству: A < B*x + C < D.

Формат входных данных:

В единственной строке заданы четыре целых числа: A, B, C и D (0 ≤ A, B, C, D ≤ 1018, B ≠ 0).

Формат выходных данных:

Выведите одно число – количество целых решений данного неравенства.

Пример

input.txt

output.txt

1 1 0 5

3

5 2 3 9

1

Возможные проблемы при решении задачи 1
1. Правильно выразить величину х из неравенства.
2. Вывод результата должен быть в формате, представленном в условии задачи.
Выражая х, получаем, что формат числа - вещественный вместо 3, которые будет искать тестовая программа, наша программа напишет, например,  3.0000000000E+00.
Чтобы вывод значения был в формате, необходимом для теста пишем:
writeln(х:0:0)

РЕШЕНИЕ:
A < B*x + C < D
Получили два неравенства относительно х:
A < B*x + C;
B*x + C < D
Выражаем х:
x1> (A-C)/B
x2< (D-C)/B

Лучше всего представить решение в графическом виде, тогда будет понятно, что решением является интервал значений от х2-х1, тк. неравенство строгое, а нужно найти количество целых решений, то из результата нужно будет вычесть 1.

ПРИМЕР ПРОГРАММЫ:
на портале оценено в 35 баллов

var a,b,c,d: integer;
x,x1,x2: real;
begin
assign(input,'input.txt');
 reset(input);
 assign(output,'output.txt');
 rewrite(output);
 read(a,b,c,d);
 x1:=(a-c)/b;
 x2:=(d-c)/b;
 x:=x2-x1-1;
writeln(x:0:0);
 close(input);
   close(output);
end.


на портале оценено в 45 баллов
(изменен тип данных)

var a,b,c,d: longint;
x,x1,x2: real;
begin
assign(input,'input.txt');
 reset(input);
 assign(output,'output.txt');
 rewrite(output);
 read(a,b,c,d);
 x1:=(a-c)/b;
 x2:=(d-c)/b;
 x:=x2-x1-1;
writeln(x:0:0);
 close(input);
   close(output);
end.

Категория: Примеры | Добавил: i_elf
Просмотров: 2334 | Загрузок: 0 | Рейтинг: 1.0/1
Всего комментариев: 0
Поиск

Друзья сайта
  • Творческий учитель
  • Сайт ООАКМР
  • Школьный сайт
  • Информатика учебник
  • МОИ

  • Copyright MyCorp © 2018 Сделать бесплатный сайт с uCoz