結果
問題 | No.653 E869120 and Lucky Numbers |
ユーザー | moyashi_senpai |
提出日時 | 2018-02-23 23:00:56 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 2,363 bytes |
コンパイル時間 | 885 ms |
コンパイル使用メモリ | 109,848 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-13 18:15:25 |
合計ジャッジ時間 | 1,873 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 |
ソースコード
#include <iostream> #include <cstdio> #include <vector> #define _USE_MATH_DEFINES #include <math.h> #include <cstring> #include <numeric> #include <algorithm> #include <stdlib.h> #include <functional> #include <string> #include <list> #include <fstream> #include <iomanip> #include <array> #include <map> #include <queue> #include <limits.h> #include <set> #include <stack> #include <random> #include <complex> #include <unordered_map> #include <unordered_set> #include <chrono> #define rep(i,s,n) for(int i = (s); (n) > i; i++) #define REP(i,n) rep(i,0,n) #define RANGE(x,a,b) ((a) <= (x) && (x) <= (b)) #define DUPLE(a,b,c,d) (RANGE(a,c,d) || RANGE(b,c,d) || RANGE(c,a,b) || RANGE(d,a,b)) #define INCLU(a,b,c,d) (RANGE(a,c,d) && (b,c,d)) #define PW(x) ((x)*(x)) #define ALL(x) (x).begin(), (x).end() #define MODU 1000000007 #define bitcheck(a,b) ((a >> b) & 1) #define bitset(a,b) ( a |= (1 << b)) #define bitunset(a,b) (a &= ~(1 << b)) #define MP(a,b) make_pair((a),(b)) #define Manh(a,b) (abs((a).first-(b).first) + abs((a).second - ((b).second)) #define pritnf printf #define scnaf scanf #define itn int using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; ll gcd(ll a, ll b) { if (b == 0) return a; return gcd(b, a%b); } template<typename A, size_t N, typename T> void Fill(A(&array)[N], const T &val) { std::fill((T*)array, (T*)(array + N), val); } struct Edge { int from, to; }; signed main() { string st; cin >> st; reverse(ALL(st)); vector<int> str(st.length()); REP(i, st.length()) { str[i] = st[i] - '0'; } int mode = 0; bool ok = true,can = false; REP(i,st.length()) { can = false; switch (mode) { case 0: if (st.length() == 1) { if (str[i] == 6 || str[i] == 7) can = true; else ok = false; break; } if (str[i] != 2 && str[i] != 3 && str[i] != 4) { ok = false; } mode++; break; case 1: if (str[i] == 7 || str[i] == 8) { mode++; can = true; break; } if (st.length() -1==i && str[i] == 1) { can = true; break; } if (str[i] != 3 && str[i] != 4 && str[i] != 5) { ok = false; } break; case 2: if (str[i] != 6 && str[i] != 7) { ok = false; } can = true; break; } } if (can && ok) { cout << "Yes" << endl; return 0; } cout << "No" << endl; return 0; }