Submission #18272984
Source Code Expand
Copy
#define LOCAL #define _USE_MATH_DEFINES #include <array> #include <cassert> #include <cstdio> #include <cstring> #include <iostream> #include <iomanip> #include <string> #include <sstream> #include <vector> #include <queue> #include <stack> #include <list> #include <set> #include <map> #include <unordered_set> #include <unordered_map> #include <algorithm> #include <complex> #include <cmath> #include <numeric> #include <bitset> #include <functional> #include <random> #include <ctime> using namespace std; template <typename A, typename B> ostream& operator <<(ostream& out, const pair<A, B>& a) { out << "(" << a.first << "," << a.second << ")"; return out; } template <typename T, size_t N> ostream& operator <<(ostream& out, const array<T, N>& a) { out << "["; bool first = true; for (auto& v : a) { out << (first ? "" : ", "); out << v; first = 0;} out << "]"; return out; } template <typename T> ostream& operator <<(ostream& out, const vector<T>& a) { out << "["; bool first = true; for (auto& v : a) { out << (first ? "" : ", "); out << v; first = 0;} out << "]"; return out; } template <typename T, class Cmp> ostream& operator <<(ostream& out, const set<T, Cmp>& a) { out << "{"; bool first = true; for (auto& v : a) { out << (first ? "" : ", "); out << v; first = 0;} out << "}"; return out; } template <typename U, typename T, class Cmp> ostream& operator <<(ostream& out, const map<U, T, Cmp>& a) { out << "{"; bool first = true; for (auto& p : a) { out << (first ? "" : ", "); out << p.first << ":" << p.second; first = 0;} out << "}"; return out; } #ifdef LOCAL #define trace(...) __f(#__VA_ARGS__, __VA_ARGS__) #else #define trace(...) 42 #endif template <typename Arg1> void __f(const char* name, Arg1&& arg1){ cerr << name << ": " << arg1 << endl; } template <typename Arg1, typename... Args> void __f(const char* names, Arg1&& arg1, Args&&... args){ const char* comma = strchr(names + 1, ','); cerr.write(names, comma - names) << ": " << arg1 << " |"; __f(comma + 1, args...); } typedef long long int64; typedef pair<int, int> ii; #define SZ(x) (int)((x).size()) const int INF = 1 << 29; const int MOD = 1e9 + 7; mt19937 mrand(random_device{}()); int rnd(int x) { return mrand() % x; } struct fast_ios { fast_ios() { cin.tie(nullptr); ios::sync_with_stdio(false); cout << fixed << setprecision(10); }; } fast_ios_; int main() { int n; cin >> n; string c(4, ' '); for (int i = 0; i < 4; ++i) cin >> c[i]; if (n <= 3) { cout << 1 << '\n'; return 0; } set<string> dp, ndp; dp = {"AB"}; vector<int> ret(n + 1, 1); for (int k = 3; k <= n && k <= 10; ++k) { ndp.clear(); for (auto& s : dp) { for (int i = 0; i < k - 2; ++i) { int x = (s[i] - 'A') * 2 + (s[i + 1] - 'A'); string t = s.substr(0, i + 1) + c[x] + s.substr(i + 1); ndp.insert(t); } } swap(dp, ndp); ret[k] = SZ(dp); // trace(k, SZ(dp)); } if (n == 4) { cout << ret[n] << '\n'; return 0; } if (ret[4] == ret[5]) { cout << 1 << '\n'; } else if (ret[4] * 2 == ret[5]) { for (int i = 5; i <= n; ++i) { ret[i] = 2 * ret[i - 1] % MOD; } cout << ret[n] << '\n'; } else { for (int i = 4; i <= n; ++i) { ret[i] = (ret[i - 1] + ret[i - 2]) % MOD; } cout << ret[n] << '\n'; } return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - AB |
User | cuiaoxiang |
Language | C++ (Clang 10.0.0) |
Score | 600 |
Code Size | 3501 Byte |
Status | AC |
Exec Time | 11 ms |
Memory | 3244 KB |
Compile Error
./Main.cpp:78:11: warning: unused variable 'INF' [-Wunused-const-variable] const int INF = 1 << 29; ^ 1 warning generated.
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 600 / 600 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt |
All | hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, hand_06.txt, hand_07.txt, hand_08.txt, hand_09.txt, hand_10.txt, hand_11.txt, hand_12.txt, hand_13.txt, hand_14.txt, hand_15.txt, hand_16.txt, hand_17.txt, hand_18.txt, hand_19.txt, hand_20.txt, hand_21.txt, hand_22.txt, hand_23.txt, hand_24.txt, hand_25.txt, hand_26.txt, hand_27.txt, hand_28.txt, hand_29.txt, hand_30.txt, hand_31.txt, hand_32.txt, hand_33.txt, hand_34.txt, hand_35.txt, hand_36.txt, hand_37.txt, hand_38.txt, hand_39.txt, hand_40.txt, hand_41.txt, hand_42.txt, hand_43.txt, hand_44.txt, hand_45.txt, hand_46.txt, hand_47.txt, hand_48.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_30.txt, random_31.txt, random_32.txt, sample_01.txt, sample_02.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
hand_01.txt | AC | 11 ms | 3064 KB |
hand_02.txt | AC | 2 ms | 3104 KB |
hand_03.txt | AC | 2 ms | 3024 KB |
hand_04.txt | AC | 2 ms | 3012 KB |
hand_05.txt | AC | 2 ms | 3112 KB |
hand_06.txt | AC | 2 ms | 3024 KB |
hand_07.txt | AC | 3 ms | 3052 KB |
hand_08.txt | AC | 2 ms | 3156 KB |
hand_09.txt | AC | 2 ms | 3056 KB |
hand_10.txt | AC | 2 ms | 3108 KB |
hand_11.txt | AC | 2 ms | 3112 KB |
hand_12.txt | AC | 2 ms | 3172 KB |
hand_13.txt | AC | 2 ms | 3096 KB |
hand_14.txt | AC | 2 ms | 3128 KB |
hand_15.txt | AC | 2 ms | 3132 KB |
hand_16.txt | AC | 3 ms | 3012 KB |
hand_17.txt | AC | 2 ms | 3092 KB |
hand_18.txt | AC | 2 ms | 3104 KB |
hand_19.txt | AC | 2 ms | 3052 KB |
hand_20.txt | AC | 3 ms | 3112 KB |
hand_21.txt | AC | 2 ms | 3108 KB |
hand_22.txt | AC | 2 ms | 3020 KB |
hand_23.txt | AC | 2 ms | 3168 KB |
hand_24.txt | AC | 2 ms | 3028 KB |
hand_25.txt | AC | 2 ms | 3156 KB |
hand_26.txt | AC | 2 ms | 3048 KB |
hand_27.txt | AC | 3 ms | 3012 KB |
hand_28.txt | AC | 2 ms | 3156 KB |
hand_29.txt | AC | 2 ms | 3204 KB |
hand_30.txt | AC | 2 ms | 3116 KB |
hand_31.txt | AC | 2 ms | 3156 KB |
hand_32.txt | AC | 2 ms | 3160 KB |
hand_33.txt | AC | 1 ms | 3100 KB |
hand_34.txt | AC | 2 ms | 3036 KB |
hand_35.txt | AC | 2 ms | 3212 KB |
hand_36.txt | AC | 2 ms | 3108 KB |
hand_37.txt | AC | 2 ms | 3212 KB |
hand_38.txt | AC | 2 ms | 3016 KB |
hand_39.txt | AC | 2 ms | 3104 KB |
hand_40.txt | AC | 2 ms | 3232 KB |
hand_41.txt | AC | 3 ms | 3032 KB |
hand_42.txt | AC | 2 ms | 3036 KB |
hand_43.txt | AC | 3 ms | 3096 KB |
hand_44.txt | AC | 2 ms | 3112 KB |
hand_45.txt | AC | 2 ms | 3176 KB |
hand_46.txt | AC | 3 ms | 3176 KB |
hand_47.txt | AC | 2 ms | 3176 KB |
hand_48.txt | AC | 1 ms | 3056 KB |
random_01.txt | AC | 2 ms | 3032 KB |
random_02.txt | AC | 2 ms | 3024 KB |
random_03.txt | AC | 2 ms | 3244 KB |
random_04.txt | AC | 2 ms | 3064 KB |
random_05.txt | AC | 2 ms | 3156 KB |
random_06.txt | AC | 2 ms | 3152 KB |
random_07.txt | AC | 2 ms | 3120 KB |
random_08.txt | AC | 3 ms | 3008 KB |
random_09.txt | AC | 2 ms | 3020 KB |
random_10.txt | AC | 2 ms | 3068 KB |
random_11.txt | AC | 2 ms | 3204 KB |
random_12.txt | AC | 3 ms | 3028 KB |
random_13.txt | AC | 2 ms | 3068 KB |
random_14.txt | AC | 2 ms | 3116 KB |
random_15.txt | AC | 2 ms | 3096 KB |
random_16.txt | AC | 3 ms | 3224 KB |
random_17.txt | AC | 2 ms | 3148 KB |
random_18.txt | AC | 2 ms | 3120 KB |
random_19.txt | AC | 2 ms | 3124 KB |
random_20.txt | AC | 2 ms | 3116 KB |
random_21.txt | AC | 3 ms | 3240 KB |
random_22.txt | AC | 2 ms | 3040 KB |
random_23.txt | AC | 2 ms | 3160 KB |
random_24.txt | AC | 2 ms | 3176 KB |
random_25.txt | AC | 2 ms | 3176 KB |
random_26.txt | AC | 3 ms | 3100 KB |
random_27.txt | AC | 2 ms | 3112 KB |
random_28.txt | AC | 2 ms | 3068 KB |
random_29.txt | AC | 2 ms | 3048 KB |
random_30.txt | AC | 2 ms | 3116 KB |
random_31.txt | AC | 2 ms | 3228 KB |
random_32.txt | AC | 2 ms | 3116 KB |
sample_01.txt | AC | 2 ms | 3028 KB |
sample_02.txt | AC | 4 ms | 3072 KB |