1331F - Elementary - CodeForces Solution


*special problem brute force dp strings

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;

using ll = long long;

string s[119]={"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 dp[11];

int main(){
ios::sync_with_stdio(false);
cin.tie(0);

for (int i=0; i<118; i++){
if (s[i].size()==2){
s[i][1]=toupper(s[i][1]);
}
}
string x;
cin>>x;
dp[0]=1;
for (int i=0; i<x.size(); i++){
if (dp[i]){
for (auto u : s){
if (x.substr(i,u.size())==u){
dp[i+u.size()]=1;
}
}
}
}
if (dp[x.size()]){
cout<<"YES"<<endl;
}
else{
cout<<"NO"<<endl;
}
return 0;
}


Comments

Submit
0 Comments
More Questions

1702B - Polycarp Writes a String from Memory
1701A - Grass Field
489C - Given Length and Sum of Digits
886B - Vlad and Cafes
915A - Garden
356A - Knight Tournament
1330A - Dreamoon and Ranking Collection
1692B - All Distinct
1156C - Match Points
1675A - Food for Animals
1328C - Ternary XOR
1689A - Lex String
1708B - Difference of GCDs
863A - Quasi-palindrome
1478A - Nezzar and Colorful Balls
1581B - Diameter of Graph
404A - Valera and X
908A - New Year and Counting Cards
146A - Lucky Ticket
1594C - Make Them Equal
1676A - Lucky
1700B - Palindromic Numbers
702C - Cellular Network
1672C - Unequal Array
1706C - Qpwoeirut And The City
1697A - Parkway Walk
1505B - DMCA
478B - Random Teams
1705C - Mark and His Unfinished Essay
1401C - Mere Array