Форум программистов, компьютерный форум CyberForum.ru

Задача Клавиатура - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
serik13
3 / 3 / 0
Регистрация: 04.01.2011
Сообщений: 71
23.09.2011, 18:34     Задача Клавиатура #1
Нужна реализация в С++ , заранее спс

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

Имя входного файла: 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.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.09.2011, 18:34     Задача Клавиатура
Посмотрите здесь:

C++ Экранная клавиатура
C++ Клавиатура

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
23.09.2011, 18:55     Задача Клавиатура #2
Мое решение этой задачи:
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 ");
}
Yandex
Объявления
23.09.2011, 18:55     Задача Клавиатура
Ответ Создать тему
Опции темы

Текущее время: 16:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru