Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Требуется написать программу, которая определит сколько монет было в сундуке в первый и во второй года, если в X-м году там оказалось ровно Y монет.

Пояснение: если в первый год положить 5 монет, а во второй год вынуть 3 монеты, то начиная с первого года в сундуке будет 5, 2, 7, 9, 16, 25, ... монет.

Технические требования:

Входной файл: INPUT. TXT

Выходной файл: OUTPUT. TXT

Ограничение по времени тестирования: по 3 секунды на один тест.

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

Входной файл INPUT. TXT содержит числа X (3£X£20) и Y (1£Y£32767), записанные через пробел.

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

В выходной текстовый файл OUTPUT. TXT записываются через пробел количество монет в первый и второй года.

Пример файла входных данных:

6 25

Пример файла выходных данных (для приведенного выше входного файла):

5 2

Разбор задачи № E

Задача решается за два шага. Вначале обозначим количество монет в первый и второй года через a и b. Тогда в третий год будет a+b монет, в четвертый – a+2b, в пятый – 2a+3b и так далее. Легко заметить, что коэффициентами при a и b являются последовательные числа Фибоначчи. Вычислив их для x-го года, получим уравнение с двумя неизвестными a и b. Это уравнение решаем в целых числах перебором всех возможных вариантов.

 var

a, b, x, y, x1, x2, xx, i : integer;

begin

assign(input,'input. txt'); reset(input);

assign(output,'output. txt'); rewrite(output);

read(x, y);

x1:=0; x2:=1;

for i:=3 to x do

begin xx:=x1+x2; x1:=x2; x2:=xx end;

a:=y div x1; b:=0;

НЕ нашли? Не то? Что вы ищете?

while x1*a+x2*b<>y do

begin

while x1*a+x2*b<y do b:=b+1;

if x1*a+x2*b<>y then begin a:=a-1; b:=0 end

end;

write(a,' ',b)

end.

Задача F. "Постоянная Капрекара" (20 баллов).

Возьмем четырехзначное число, в котором не все цифры одинаковы, например 6264. Расположим цифры сначала в порядке убывания - 6642; затем, переставив их в обратном порядке, получим 2466. Вычтем последнее число из 6642. На следующем шаге с полученной разностью проделаем тоже самое. Через несколько таких действий получится число, переходящее само в себя и называемое постоянной Капрекара.

Требуется написать программу, которая находит эту постоянную и количество шагов для ее получения из заданного четырехзначного числа.

Технические требования:

Входной файл: INPUT. TXT

Выходной файл: OUTPUT. TXT

Ограничение по времени тестирования: по 3 секунды на один тест.

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

Входной файл INPUT. TXT содержит одну строку, в которой записано четырехзначное число.

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

В выходной текстовый файл OUTPUT. TXT записываются: в первой строке постоянная Капрекара, во второй – количество шагов для ее получения.

Пример файла входных данных:

1234

Пример файла выходных данных:

<постоянная Капрекара>

3

Разбор задачи № F

Для введенного числа находим его цифры и записываем в массив. Упорядочим массив по возрастанию, после чего находим число согласно условию задачи. Продолжаем до тех пор, пока числа не совпадут.

var

n, n1, c : integer;

function sled(n:integer): integer;

var a : array [1..4] of integer;

i, j, x : integer;

begin

for i:=1 to 4 do

begin

a[i]:=n mod 10;

n:=n div 10

end;

for i:=1 to 3 do

for j:=1 to 4-i do

if a[j]>a[j+1] then begin x:=a[j]; a[j]:=a[j+1]; a[j+1]:=x end;

sled:=(a[4]-a[1])*999+(a[3]-a[2])*90

end;

begin

assign(input,'input. txt'); reset(input);

assign(output,'output. txt'); rewrite(output);

read(n);

c:=0; n1:=sled(n);

while n<>n1 do

begin

c:=c+1;

n:=n1;

n1:=sled(n)

end;

writeln(n);

write(c)

end.

Задача G. "Шифровка" (20 баллов)

Для кодирования сообщения используют следующие действия: сообщение записывают, опуская пробелы, в прямоугольник заданной высоты по столбцам, а затем прочитывают строки в заданном порядке.

Например, для кодирования слова ПРОГРАММИРОВАНИЕ его записывают в прямоугольник высоты 4 следующим образом:

1 П Р И А

2 Р А Р Н

3 О М О И

4 Г М В Е

а затем, если выбрать порядок строк 3, 1, 2, 4, получают закодированное сообщение ОМОИПРИАРАРНГМВЕ.

Требуется написать программу, которая по заданным высоте прямоугольника и порядке прочтения строк при кодировке декодирует заданное сообщение.

Технические требования:

Входной файл: INPUT. TXT

Выходной файл: OUTPUT. TXT

Ограничение по времени тестирования: по 3 секунды на один тест.

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

Входной файл INPUT. TXT содержит: в первой строке высоту прямоугольника (не больше 10), во второй – порядок прочтения строк (числа записаны через пробел), в третьей – закодированное сообщение, длина которого не превышает 200.

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

В выходной текстовый файл OUTPUT. TXT записывается декодированное сообщение.

Пример файла входных данных:

4

3 1 2 4

ОМОИПРИАРАРНГМВЕ

Пример файла выходных данных (для приведенного выше входного файла):

ПРОГРАММИРОВАНИЕ

Разбор задачи № G

В этой задаче необходимо было аккуратно запрограммировать работу со строками. Единственная трудность заключалась в случае неполного заполнения последнего столбца при шифровании. Как это преодолеть смотрите в программе.

 var

n, i, j, k1, k2, kk : integer;

a : array [1..10] of integer;

s : string;

t : array [1..10] of string;

begin

assign(input,'input. txt'); reset(input);

assign(output,'output. txt'); rewrite(output);

readln(n);

for i:=1 to n do read(a[i]);readln;

readln(s);

k1:=length(s) div n;

k2:=length(s)-k1*n;

for i:=1 to n do

begin

if a[i]>k2 then kk:=k1 else kk:=k1+1;

t[a[i]]:=copy(s,1,kk);

delete(s,1,kk)

end;

for i:=1 to k1 do for j:=1 to n do s:=s+t[j][i];

for j:=1 to k2 do s:=s+t[j][k1+1];

writeln(s)

end.

Задача H. "Нить Ариадны" (20 баллов)

Тезею из лабиринта Минотавра помог выйти клубок ниток. Вы можете вместо клубка использовать персональный компьютер.

Требуется написать программу, которая вводит маршрут Тезея в лабиринте и находит обратный путь, по которому Тезей сможет выйти из лабиринта, не заходя в тупики и не делая петель.

Технические требования:

Входной файл: INPUT. TXT

Выходной файл: OUTPUT. TXT

Ограничение по времени тестирования: по 3 секунды на один тест.

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

Входной файл INPUT. TXT содержит маршрут Тезея, который представлен строкой, состоящей из букв: N, S, W, E и длиной не более 200.

Буквы означают:

N - один "шаг" на север,

S - один "шаг" на юг,

W - один "шаг" на запад,

E - один "шаг" на восток.

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

В выходной текстовый файл OUTPUT. TXT записывается аналогично входному файлу найденный обратный путь.

Пример файла входных данных:

EENNESWSSWE

Пример файла выходных данных (для приведенного выше входного файла):

NWW

Разбор задачи № H

Представим, что движение осуществляется на квадратном клеточном поле с шагом 1 от точки (0, 0). В массиве будем хранить координаты посещенных точек (перед началом движения там всего одна нулевая точка). После каждого шага в одном из четырех направлений просмотром массива определяем: не были ли мы уже в этой точке. И если были, то удаляем из маршрута эту часть пути. Детали реализации алгоритма смотрите в программе.

var

s, t : string;

a : array [1..2,0..200] of integer;

i, j, k : integer;

begin

assign(input,'input. txt'); reset(input);

assign(output,'output. txt'); rewrite(output);

readln(s); t:='';

k:=0; a[1,k]:=0; a[2,k]:=0;

for i:=1 to length(s) do

begin

k:=k+1;

if s[i]='N' then begin a[1,k]:=a[1,k-1]; a[2,k]:=a[2,k-1]+1; t:=t+'S' end;

if s[i]='E' then begin a[1,k]:=a[1,k-1]+1; a[2,k]:=a[2,k-1]; t:=t+'W' end;

if s[i]='S' then begin a[1,k]:=a[1,k-1]; a[2,k]:=a[2,k-1]-1; t:=t+'N' end;

if s[i]='W' then begin a[1,k]:=a[1,k-1]-1; a[2,k]:=a[2,k-1]; t:=t+'E' end;

j:=0;

while (a[1,j]<>a[1,k]) or (a[2,j]<>a[2,k]) do j:=j+1;

if j<k then

begin

delete(t, j+1,k-j);

k:=j

end

end;

for i:=length(t) downto 1 do write(t[i])

end.

Задача I. "Сообщения" (20 баллов)

Для надежности некоторое сообщение было передано по линии связи трижды, но каждый раз ровно один символ был принят в искаженном виде.

Требуется написать программу, которая по трем полученным сообщениям восстановит исходное сообщение, или установит, что сделать это невозможно.

Технические требования:

Входной файл: INPUT. TXT

Выходной файл: OUTPUT. TXT

Ограничение по времени тестирования: по 3 секунды на один тест.

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

Входной файл INPUT. TXT содержит три строки с тремя полученными сообщениями, которые представлены строками длиной не более 255.

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

В выходной текстовый файл OUTPUT. TXT записывается восстановленное сообщение или «NO», если сообщение невозможно восстановить.

Пример файла входных данных:

test

texs

eext

Пример файла выходных данных (для приведенного выше входного файла):

text

Разбор задачи № I

Эта задача была на одной из ленинградских олимпиад по информатике. Далее приводится решение Антона Суханова, победителя Всесоюзных и члена жюри Всероссийских олимпиад школьников по информатике.

Выпишем эти три текста в три строки друг под другом, как это сделано в примере.

Колонку из трех символов назовем искаженной, если в ней есть хотя бы один символ, отличный от других. Так как в трех текстах ровно 3 искаженных символа, то искаженных колонок не может быть больше трех. Рассмотрим подробно четыре случая:

а) 3 искаженных колонки. В каждой из искаженных колонок находится ровно один искаженный символ, который легко восстановить, ибо два других равны.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7