梦熊J组 T2神笔模拟
sb不会打模拟了,我是傻逼
#include<bits/stdc++.h>
using namespace std;
void exit1()
{
cout << "Yes";
exit(0);
}
void exit2()
{
cout << "No";
exit(0);
}
int ck[1005];
int n;
string s;
int L(int pos)
{
char now = s[pos];
if (ck[now] == 4) return L(pos - 1);
return ck[now];
}
int R(int pos)
{
if (pos == n) exit1();
char now = s[pos];
if (ck[now] == 4) return R(pos + 1);
return ck[now];
}
signed main()
{
ck['a'] = 1, ck['1'] = 1, ck['$'] = 1;
ck['@'] = 2;
ck[','] = 3;
ck['_'] = 4;
cin >> s;
n = s.size();
for (int i = 1; i < n; i++)
if ((ck[s[i]] == 1 && ck[s[i - 1]] == 2) || (ck[s[i]] == 2 && ck[s[i - 1]] == 1))
exit2();
bool flag = 0;
for (int i = 0; i < n; i++)
{
if (ck[s[i]] == 4 && flag)
{
int l = L(i - 1);
int r = R(i + 1);
if ((l == 1 && r == 3) || (l == 3 && r == 1)) exit2();
}
else flag = 1;
}
exit1();
}