16.04.2013, 22:12. Просмотров 562. Ответов 5
Объясните, в чем моя ошибка в решении задачи.
Условие:
103. Подсчет войск
ограничение времени на тест: 0.5 сек.
ограничение памяти на тест: 65536 KB.
ввод: input.txt
вывод: output.txt
Король шахматной доски решил выяснить боеспособность своей армии. Посыльный объехал все клетки поля и сделал записи обо всех войсках, имеющихся в государстве.
Вам поручено упорядочить полученные данные для предъявления королю. Посыльный обозначал войска большими латинскими буквами P, K, S, L, F. Вы должны вывести этот список в неубывающем порядке, если P<K<S<L<F.
Входные данные
Во входном файле содержатся записи посыльного без пробелов. Известно, что в королевстве не более 64 войск.
Выходные данные
В выходной файл необходимо вывести упорядоченный список войск.
Пример
Ввод
PKSLFKSSLF
Вывод
PKKSSSLLFF
Мое решение:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #include <iostream>
#include <string>
using namespace std;
int m[5];
int i;
string s;
int main()
{
freopen ("input.txt", "r", stdin);
freopen ("output.txt", "w", stdout);
cin >> s;
for (i = 0; i < s.length(); i++) {m[s[i]]++;}
for (i = 0; i < m['P']; i++) {cout << "P";}
for (i = 0; i < m['K']; i++) {cout << "K";}
for (i = 0; i < m['S']; i++) {cout << "S";}
for (i = 0; i < m['L']; i++) {cout << "L";}
for (i = 0; i < m['F']; i++) {cout << "F";}
} |
|
Программа на контестере проходит только 1 тест из 9. Можете объяснить, в чем моя ошибка и как ее исправить!