Task: | Rhyming Slang |
Sender: | KnowYourArchitecture |
Submission time: | 2016-11-12 13:39:55 +0200 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.06 s | details |
#2 | ACCEPTED | 0.05 s | details |
#3 | ACCEPTED | 0.06 s | details |
#4 | ACCEPTED | 0.06 s | details |
#5 | ACCEPTED | 0.05 s | details |
#6 | ACCEPTED | 0.05 s | details |
#7 | ACCEPTED | 0.06 s | details |
#8 | ACCEPTED | 0.06 s | details |
#9 | ACCEPTED | 0.05 s | details |
#10 | ACCEPTED | 0.05 s | details |
#11 | ACCEPTED | 0.06 s | details |
#12 | ACCEPTED | 0.05 s | details |
#13 | ACCEPTED | 0.05 s | details |
Code
#include <iostream> #include <string> #include <vector> #include <set> using namespace std; vector<string> split(string s) { vector<string> v; while (!s.empty()) { auto p = s.find(' '); if (p == string::npos) { v.push_back(s); break; } v.push_back(s.substr(0, p)); s = s.substr(p+1); } return v; } bool isSuffix(string a, string b) { if (a.size() < b.size()) return false; return a.substr(a.size()-b.size()) == b; } int main() { string tmp; string s; getline(cin, s); int e; cin >> e; getline(cin, tmp); set<string> rhymes; for (int i = 0; i < e; i++) { string l; getline(cin, l); auto ps = split(l); for (string p : ps) { if (isSuffix(s, p)) { rhymes.insert(ps.begin(), ps.end()); break; } } } int n; cin >> n; getline(cin, tmp); for (int i = 0; i < n; i++) { string l; getline(cin, l); bool found = false; for (string r : rhymes) if (isSuffix(l, r)) found = true; if (found) cout << "YES\n"; else cout << "NO\n"; } }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
doubt 2 aught ought aut acht oubt out ought outte oute 5 ... |
correct output |
---|
YES YES NO YES NO |
user output |
---|
YES YES NO YES NO |
Test 2
Verdict: ACCEPTED
input |
---|
qgrqe 10 a blne bp bt cu cy e eqdetn gl... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
YES YES YES YES YES ... |
Test 3
Verdict: ACCEPTED
input |
---|
hi 10 ahn b c ccf csbwgvhsyx e fqv g... |
correct output |
---|
NO NO NO YES NO ... |
user output |
---|
NO NO NO YES NO ... |
Test 4
Verdict: ACCEPTED
input |
---|
joo 10 ck e ephxruuiv hwvne iyl j lrk... |
correct output |
---|
YES NO NO NO YES ... |
user output |
---|
YES NO NO NO YES ... |
Test 5
Verdict: ACCEPTED
input |
---|
jsd 10 ahtj b cfu h i ip k kcntfmo kz... |
correct output |
---|
YES NO NO YES YES ... |
user output |
---|
YES NO NO YES YES ... |
Test 6
Verdict: ACCEPTED
input |
---|
dg 10 a aauj d dxf elt f h j k km l ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
YES YES YES YES YES ... |
Test 7
Verdict: ACCEPTED
input |
---|
ez 10 a alth b c cf d flzia iam juc ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
YES YES YES YES YES ... |
Test 8
Verdict: ACCEPTED
input |
---|
irxe 10 a dvf guwnzdez hi hsjf ibpcm j... |
correct output |
---|
YES YES YES NO YES ... |
user output |
---|
YES YES YES NO YES ... |
Test 9
Verdict: ACCEPTED
input |
---|
baa 3 aa bb cc dd aa ee ff gg aa hh ii jj ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
YES YES YES YES YES ... |
Test 10
Verdict: ACCEPTED
input |
---|
bad 1 bad mad sad 5 madbadsadwrong ... |
correct output |
---|
NO NO NO NO NO |
user output |
---|
NO NO NO NO NO |
Test 11
Verdict: ACCEPTED
input |
---|
baa 10 aa ba ca da ea fa ga ha ia ja ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
YES YES YES YES YES ... |
Test 12
Verdict: ACCEPTED
input |
---|
asdasdasdasdasdasda 1 asdasdasdasdasdasda fdgdfgdfgd... |
correct output |
---|
YES YES YES |
user output |
---|
YES YES YES |
Test 13
Verdict: ACCEPTED
input |
---|
b 1 a 1 a |
correct output |
---|
NO |
user output |
---|
NO |