习题-安卓图案解锁(模拟)

习题-安卓图案解锁

#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> PII;
#define x first 
#define y second

int c[10] = {0, 1, 2, 1, 3, 0, 3, 1, 2, 1};
bool st[10];

signed main(){
    string s;
    while(cin >> s){
        memset(st, 0, sizeof st);
        bool flag = false;
        for(int i = 0; i < s.size() - 1; ++i){
            int num1 = s[i] - '0', num2 = s[i+1] - '0';
            if(num1 == num2 || st[num2]) {flag = 1; break;}
            else if(c[num1] == c[num2] && !st[(num1 + num2) / 2]) {flag = 1; break;}
            st[num1] = st[num2 ] = true;
        }
        
        if(!flag) cout << "YES" << endl;
        else cout << "NO" << endl;
    }
    
    return 0;
}
posted @ 2025-03-27 21:00  awei040519  阅读(13)  评论(0)    收藏  举报