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:
Manacher's Algorithm - Finding all sub-palindromes in $O(N)$
Counting Skyscrapers
Amity Assessment
Delivery Club
Let Them Slide
Tablecity
Copying Data
Longest increasing subsequence
New Year Santa Network
Spy Syndrome 2
Festival Organization
A Serial Killer
Sieve of Eratosthenes Having Linear Time Complexity
Dreamoon Likes Coloring
Adam and Tree
Not Same
Perfect Triples
Number of paths of fixed length / Shortest paths of fixed length
Boring Partition
Well-known Numbers
Read Time
International Olympiad
Dating
Power Tree
Wonder Room
New Year and Finding Roots
Image Preview
Pillars
Interactive LowerBound
Dijkstra on sparse graphs
King Moves
Weather Tomorrow