sofiko07161
07.09.2022 05:15

Макс и супермаркет После долгих попыток устроиться на работу программистом, Макс наконец получил должность администратора в супермаркете. Заметив, что клиенты магазина часто подолгу ожидают своей очереди при оплате покупок, Макс решил создать автоматизированную систему, распределяющую покупателей по кассам.

В супермаркете имеются N касс, оператор i-й из которых пробивает одну покупку за время Ti. К кассам последовательно подходят M покупателей, у j-го из них в корзине находятся Aj покупок.

Каждого покупателя нужно направить к той кассе, которая начнёт его обслуживать раньше всех остальных. Если подходящих касс несколько, выбирается касса с наименьшим номером.

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

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

Первая строка содержит целое число N (1≤N≤105) — количество касс.

Вторая строка содержит N целых чисел Ti (1≤Ti≤105) — время, за которое операторы каждой из касс пробивают одну покупку.

Третья строка содержит целое число M (1≤M≤105) — количество покупателей.

Четвёртая строка содержит M целых чисел Ai (0≤Ai≤105) — количество покупок у каждого из покупателей.

Кассы нумеруются от 1 до N в порядке описания во входных данных.

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

Выведите M целых чисел — номера касс, которые должны обслуживать каждого из покупателей.

Ввод
Вывод
3
2 3 2
6
2 3 2 3 2 3
1 2 3 1 3 3

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
liza8332
02.09.2020 01:45
Пусть исходные координаты чертежника (x;y). Смоделируем алгоритм:
0) (x;y)
1) (x-1;y-2)
2) n раз делается одно и то же: первая координата изменяется на a, затем из нее вычитается 1, вторая координата изменяется на b, затем вычитается 2. В результате координаты равны:
(x-1+n*(a-1); y-2+n*(b-2))
3) (x-1+n*(a-1)-20; y-2+n*(b-2)-12)
Концом работы программы является попадание в стартовую позицию. То есть x-1+n*(a-1)-20=x => n*(a-1)=21
y-2+n*(b-2)-12=y => n*(b-2)=14
Тогда n нужно искать среди делителей чисел 21 и 14. Точнее ответом будет НОД(21, 14)=7.
0,0(0 оценок)
Ответ:
Maryan2609
12.03.2020 19:36
Var
    f: file of integer;
    i, n, x, t, k, max: integer;
    s: integer;

begin
    randomize;
    write('n=');
    readln(n);
    
    assign(f, 'numbers.dat');
    rewrite(f);
    
    max := -1;
    for i := 1 to n do
    begin
        x := random(4800) + 20;
        write(f, x);
        write(x, ' ');
        if x > max then max := x;
    end;
    writeln;
    
    seek(f, 0);
    k := 0;
    while not eof(f) do
    begin
        read(f, x);
        t := x;
        s := 0;
        while t > 0 do
        begin
            s := s + sqr(t mod 10);
            t := t div 10;
        end;
        if x mod s = 0 then k := k + 1;
        if x > max - 50 then write(x, ' ');
    end;
    writeln;
    
    writeln(k);
end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота