// UVa 10815 - Andy's First Dictionary
#include <string>
#include <map>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
bool letter(char c) {
return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
}
int main() {
map<string, bool> taken;
vector<string> v;
string word;
while (cin >> word) {
for (int i = 0; i < word.length(); i++) {
if (letter(word[i])) {
int j = i + 1;
while (j < word.length() && letter(word[j]))
j++;
string w = word.substr(i, j - i);
for (int k = 0; k < w.length(); k++)
if (w[k] >= 'A' && w[k] <= 'Z')
w[k] = w[k] - 'A' + 'a';
if (!taken[w]) {
taken[w] = true;
v.push_back(w);
}
i = j;
}
}
}
sort(v.begin(), v.end());
for (int i = 0; i < v.size(); i++)
cout << v[i] << endl;
return 0;
}
Monday, September 28, 2015
UVa 10815 - Andy's First Dictionary
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment