Task: | Sanat |
Sender: | |
Submission time: | 2015-12-20 17:12:59 +0200 |
Language: | C++ |
Status: | READY |
Result: | 64 |
group | verdict | score |
---|---|---|
#1 | ACCEPTED | 64 |
test | verdict | time | score | |
---|---|---|---|---|
#1 | ACCEPTED | 0.20 s | 64 | details |
Compiler report
input/code.cpp: In function 'std::string classify(std::string&)': input/code.cpp:42:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(s.size() >= 5 && nVowel >= s.size()/2) return finnish; ^ input/code.cpp:44:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 0; i < s.size()-1; i++){ ^ input/code.cpp:48:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i = 0; i < s.size()-2; i++){ ^
Code
#include <iostream> #include <vector> #include <algorithm> #include <utility> #include <set> #include <sstream> #include <fstream> #include <cassert> typedef long long LL; using namespace std; string foreign = "zxcbfqwg"; string vowel = "aeiuo"; string finnish = "10-4"; string english = "QAQ"; set<string> english_database; bool is_foreign(char c){ for(char f : foreign) if(c == f) return true; return false; } bool is_vowel(char c){ for(char f : vowel) if(c == f) return true; return false; } string classify(string& s){ if(english_database.count(s)){ return english; } LL nVowel = 0; for(char c : s){ if(c > 'z') return finnish; if(is_foreign(c)) return english; if(is_vowel(c)) nVowel++; } if(s.size() >= 5 && nVowel >= s.size()/2) return finnish; for(int i = 0; i < s.size()-1; i++){ if(s[i] == s[i+1]) return finnish; } for(int i = 0; i < s.size()-2; i++){ if(!is_vowel(s[i]) && !is_vowel(s[i+1]) && !is_vowel(s[i+2])) return english; } //if(s.size() >= 2 && !is_vowel(s[s.size()-1]) && !is_vowel(s[s.size()-2])) // return english; return finnish; } int main(){ ifstream dictionary("/etc/dictionaries-common/words"); string word; while(dictionary >> word){ string word2; for(auto c : word) if(tolower(c) >= 'a' && tolower(c) <= 'z') word2 += tolower(c); english_database.insert(word2); } LL n; cin >> n; for(int i = 0; i < n; i++){ string s; cin >> s; cout << classify(s) << "\n"; } }