Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
serik13
3 / 3 / 0
Регистрация: 04.01.2011
Сообщений: 71
1

Задача Клавиатура

23.09.2011, 18:34. Просмотров 3542. Ответов 2
Метки нет (Все метки)

Нужна реализация в С++ , заранее спс

Задача Клавиатура

Имя входного файла: keyboard.in
Имя выходного файла: keyboard.out
Максимальное время работы на одном тесте: 2 секунды
Максимальный объем используемой памяти: 64 мегабайта

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

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

Формат входных данных
Первая строка входного файла содержит целое число n (1 ≤ n ≤ 100) – количество клавиш на клавиатуре. Вторая строка содержит n целых чисел – с1, с2, … , сn, где сi (1 ≤ сi ≤ 100000) – количество нажатий, выдерживаемых i-ой клавишей. Третья строка содержит целое число k (1 ≤ k ≤ 100000) – общее количество нажатий клавиш, и последняя строка содержит k целых чисел pj (1 ≤ pj ≤ n) – последовательность нажатых клавиш.

Формат выходных данных
В выходной файл необходимо вывести n строк, содержащих информацию об исправности клавиш. Если i-ая клавиша сломалась, то i-ая строка должна содержать слово “yes” (без кавычек), если же клавиша работоспособна – слово “no”.
Пример входных и выходных данных
keyboard.in
5
1 50 3 4 3
161 2 3 4 5 1 3 3 4 5 5 5 5 5 4 5
keyboard.out
yes
no
no
no
yes

Есть на Паскале
Var
c : array [1..100] of longint;
n, i, k, t : longint;
f : text;
Begin
Assign(f,'keyboard.in');
Reset(f);
ReadLn(f,n);
For i:=1 to N do
Read(f,c[i]);
Readln(f,k);
For i:=1 to k do
begin
Read(f,t);
Dec(c[t]);
end;
Close(f);
Assign(f,'keyboard.out');
Rewrite(f);
For i:=1 to N do
If c[i]>=0 Then
Writeln(f,'no')
Else Writeln(f,'yes');
Close(f);
End.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2011, 18:34
Ответы с готовыми решениями:

Клавиатура
Как можно отследить нажатую клавишу и написать вместо неё другую

Экранная клавиатура
Надо сделать так, чтобы нажимая мышкой кнопки на форме(например "4") программа записывала их в...

Консоль и клавиатура...
в консоли я хочу использовать стрелки или WASD, чтобы руководить той же "змейкой" (читал исходник...

Задача "Клавиатура"
Для данной буквы латинского алфавита нужно вывести справа стоящую букву на стандартной клавиатуре....

Клавиатура
Здравствуйте,у меня проблема с клавиатурой.выключил на ночь комп,утром включаю-клава не...

2
diagon
Higher
1942 / 1208 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
23.09.2011, 18:55 2
Лучший ответ Сообщение было отмечено serik13 как решение

Решение

Мое решение задачи:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <fstream>
 
int arr[101], n, i;
 
int main()
{
    std::fstream v("input.txt"), o("output.txt", std::ios::out);   
    
    for (v >> n; i < n; )
        v >> arr[i++];
    
    for (v >> i; v >> i;)
        --arr[i-1];
    
    for (i = 0; i < n; )
        o << (arr[i++] < 0 ? "yes " : "no ");
}
0
DocCregland
3 / 3 / 0
Регистрация: 15.11.2014
Сообщений: 17
08.04.2019, 18:07 3
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def keyCount(n, actualClicks, maxClicks):
    clickCount = [0] * n
    for click in actualClicks:
        clickCount[click - 1] += 1
    for i in range(n):
        if maxClicks[i] < clickCount[i]:
            print('YES')
        else:
            print('NO')
 
 
n = int(input())
maxClicks = [int(i) for i in input().split()]
k = int(input())
actualClicks = [int(i) for i in input().split()]
 
keyCount(n, actualClicks, maxClicks)
ребятам с курсеры и на python не помешает
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2019, 18:07

Клавиатура
Всем доброго времени суток! И снова я со своими глупыми вопросами :-) Вобщем у меня возникла...

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

Клавиатура.
Объясните, пожалуйста, в каких случаях пользоваться кнопками, чтоб надписи &quot;работали&quot; : Italic -...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.