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; }
Related posts:
Résumé Review
Prefix function. Knuth–Morris–Pratt algorithm
New Year and Ancient Prophecy
String Hashing
Irreducible Anagrams
Lazy Security Guard
Bookshelves
Xenia and Colorful Gems
Finding the largest zero submatrix
Gauss method for solving system of linear equations
Discrete Logarithm
Makoto and a Blackboard
Parity Game
New Year and Finding Roots
Amr and Pins
Field expansion
Smallest Word
Convex Hull construction using Graham's Scan
Ordering Pizza
Marbles
Interactive LowerBound
Spyke Talks
Delivery Club
TOF
Expression parsing
Third Month Insanity
Dice Tower
Slime and Biscuits
New Year and Ascent Sequence
Rabin-Karp Algorithm for string matching
Magical Boxes
Limericks