結果
問題 | No.653 E869120 and Lucky Numbers |
ユーザー | mkawa2 |
提出日時 | 2020-08-05 00:32:30 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,209 bytes |
コンパイル時間 | 1,949 ms |
コンパイル使用メモリ | 192,172 KB |
最終ジャッジ日時 | 2025-01-12 14:29:13 |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define rep(i, n) for (int i = 0; i < (n); i++) #define all(x) (x).begin(), (x).end() #define popcnt __builtin_popcount using ll = long long; using pii = pair<int, int>; using vi = vector<int>; template <class T> bool chmax(T &a, const T &b) { if (a < b) { a = b; return 1; } return 0; } template <class T> bool chmin(T &a, const T &b) { if (b < a) { a = b; return 1; } return 0; } const ll inf = 1e16; int a[20005]; bool check(int n) { if (a[0] == 2 || a[0] == 3 || a[0] == 4) { bool move = true; for (int i = 1; i < n - 1; i++) { if (move) { if (a[i] != 3 && a[i] != 4 && a[i] != 5) { if (a[i] == 7 || a[i] == 8) move = false; else return false; } } else { if (a[i] != 6 && a[i] != 7) return false; } } if (move) { if (a[n - 1] == 1 || a[n - 1] == 7 || a[n - 1] == 8) return true; } else { if (a[n - 1] == 7 || a[n - 1] == 6) return true; } } return false; } int main() { string s; cin >> s; int n = s.size(); rep(i, n) a[i] = s[n - 1 - i] - '0'; if (check(n)) puts("Yes"); else puts("No"); return 0; }