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

Задача: "Слишком длинные слова" (RUNTIME_ERROR) - C++

Восстановить пароль Регистрация
 
akimo
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 10
03.10.2012, 17:13     Задача: "Слишком длинные слова" (RUNTIME_ERROR) #1
"RUNTIME_ERROR" при отправлении. В чем ошибка и как сделать правильно?

Текст задачи:
A. Слишком длинные слова
ограничение по времени на тест:2 seconds
ограничение по памяти на тест:256 megabytes
ввод:standard input
вывод:standard output

Иногда некоторые слова вроде «localization» или «internationalization» настолько длинны, что их весьма утомительно писать много раз в каком либо тексте.

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

Эта аббревиатура строится следующим образом: записывается первая и последняя буква слова, а между ними — количество букв между первой и последней буквой (в десятичной системе счисления и без ведущих нулей).

Таком образом, «localization» запишется как «l10n», а «internationalization» как «i18n».

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

В первой строке содержится целое число n (1 ≤ n ≤ 100). В каждой из последующих n строк содержится по одному слову. Все слова состоят из малых латинских букв и имеют длину от 1 до 100 символов.
Выходные данные

Выведите n строк. В i строке должен находится результат замены i-го слова из входных данных.

Примеры тестов

Входные данные
4
word
localization
internationalization
pneumonoultramicroscopicsilicovolcanoconiosis

Выходные данные
word
l10n
i18n
p43s

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <cstdlib>
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
string str, m1[n], m3[n], c[2];
int m2[n], m4[n];
for (int i = 0; i < n; ++i)
{
    m4[i] = 0;
}
for (int i = 0; i < n; ++i)
{
    cin >> str;
    int k = str.length();
    if (k > 10) {
        c[1] = str[0];
        c[2] = str[k - 1];
        m1[i] = c[1];
        m2[i] = k - 2;
        m3[i] = c[2];
    }
    else {
        m4[i] = 1;
        m1[i] = str;
    }
}
for (int i = 0; i < n; ++i)
{
    if (m4[i] != 1)
    {
        cout << m1[i] << m2[i] << m3[i] << endl;
    }
    else
    {
        cout << m1[i] << endl;
    }
}
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2012, 17:13     Задача: "Слишком длинные слова" (RUNTIME_ERROR)
Посмотрите здесь:

C++ Определить длину каждого слова. Удалить все буквы "а" и "о" с фамилии
Все слова, не содержащие "bc" и заканчивающиеся на "ad" заменить на "!" C++
Перебрать все слова длиной не более n, составленные из букв "а" и "b" C++
Определить длину каждого слова строки, и если она четная, то вставить в середину слова "aa", иначе "а" C++
Класс "Длинные числа" с перегрузкой операторов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
03.10.2012, 17:18     Задача: "Слишком длинные слова" (RUNTIME_ERROR) #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
using namespace std;
 
int main() {
    short n;
    cin >> n;
    string s;
    short l;
    while (n--) {
        cin >> s;
        l = s.length();
        if (l <= 10)
            cout << s << endl;
        else
            cout << s[0] << l - 2 << s[l - 1] << endl;
    }
}
akimo
0 / 0 / 0
Регистрация: 03.10.2012
Сообщений: 10
03.10.2012, 18:16  [ТС]     Задача: "Слишком длинные слова" (RUNTIME_ERROR) #3
Благодарю, а я глупость сотворил, что то не подумал, что input и output хранятся в памяти параллельно, начал с приблизительно того же, но потом решил что нужно сначала вбивать строки в массив, а после их выводить в сокращенном виде.
Aliksan
2 / 2 / 1
Регистрация: 22.09.2015
Сообщений: 116
10.02.2016, 19:19     Задача: "Слишком длинные слова" (RUNTIME_ERROR) #4
Жаль, нет решения задачи на си......
Yandex
Объявления
10.02.2016, 19:19     Задача: "Слишком длинные слова" (RUNTIME_ERROR)
Ответ Создать тему
Опции темы

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