Input
The input consists of a single string of uppercase letters A-Z. The length of the string is between 1 and 10 characters, inclusive.Output
Output “YES” or “NO”.Examplesinput
GENIUS
output
YES
input
DOCTOR
output
NO
input
IRENE
output
YES
input
MARY
output
NO
input
SMARTPHONE
output
NO
input
REVOLVER
output
YES
input
HOLMES
output
NO
input
WATSON
output
YES
Solution:
#include <bits/stdc++.h> using namespace std; vector<string> els = {"H","He","Li","Be","B","C","N","O","F","Ne","Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca","Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn","Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr","Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn","Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd","Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb","Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg","Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Ds","Rg","Cn","Nh","Fl","Mc","Lv","Ts","Og"}; int main() { ios::sync_with_stdio(false); cin.tie(0); for (string& x : els) { if (x.size() == 2) { x[1] = (char) toupper(x[1]); } } string s; cin >> s; vector<bool> dp(s.size() + 1); dp[0] = true; for (int i = 0; i < (int) s.size(); i++) { if (dp[i]) { for (string w : els) { if (s.substr(i, w.size()) == w) { dp[i + (int) w.size()] = true; } } } } cout << (dp.back() ? "YES" : "NO") << '\n'; return 0; }