Submission #58033


ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include "bits/stdc++.h"
#pragma GCC optimize("Ofast")
// Begin Header {{{
using namespace std;
#ifndef DEBUG
#define dump(...)
#endif
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define rep(i, n) for (intmax_t i = 0, i##_limit = (n); i < i##_limit; ++i)
#define reps(i, b, e) for (intmax_t i = (b), i##_limit = (e); i <= i##_limit; ++i)
#define repr(i, b, e) for (intmax_t i = (b), i##_limit = (e); i >= i##_limit; --i)
#define var(Type, ...) Type __VA_ARGS__; input(__VA_ARGS__)
constexpr size_t operator""_zu(unsigned long long value) { return value; };
constexpr intmax_t operator""_jd(unsigned long long value) { return value; };
constexpr uintmax_t operator""_ju(unsigned long long value) { return value; };
constexpr int INF = 0x3f3f3f3f;
constexpr intmax_t LINF = 0x3f3f3f3f3f3f3f3f_jd;
namespace moke {
template <class T> using MaxHeap = priority_queue<T, vector<T>, less<T>>;
template <class T> using MinHeap = priority_queue<T, vector<T>, greater<T>>;
inline void input() {}
template <class Head, class... Tail> inline void input(Head&& head, Tail&&... tail) {
cin >> head;
input(forward<Tail>(tail)...);
}
inline void outs() { cout << "\n"; }
template <class Head, class... Tail> inline void outs(Head&& head, Tail&&... tail) {
cout << head << (sizeof...(tail) ? " " : "");
outs(forward<Tail>(tail)...);
}
template <class T> inline void outs(vector<T> &vec) {
for (auto &e : vec) cout << e << " \n"[&e == &vec.back()];
}
template <class T> inline void outs(vector<vector<T>> &df) {
for (auto &vec : df) outs(vec);
}
inline void outl() { cout << "\n"; }
template <class Head, class... Tail> inline void outl(Head&& head, Tail&&... tail) {
cout << head << (sizeof...(tail) ? "\n" : "");
outl(forward<Tail>(tail)...);
}
template <class T> inline void outl(vector<T> &vec) {
for (auto &e : vec) cout << e << "\n";
}
inline void outn() {}
template <class Head, class... Tail> inline void outn(Head&& head, Tail&&... tail) {
cout << head;
outn(forward<Tail>(tail)...);
}
template <class T> inline void outn(vector<T> &vec) {
for (auto &e : vec) cout << e;
}
template <class T> inline vector<T> make_v(const T &initValue, size_t sz) {
return vector<T>(sz, initValue);
}
template <class T, class... Args> inline auto make_v(const T &initValue, size_t sz, Args... args) {
return vector<decltype(make_v<T>(initValue, args...))>(sz, make_v<T>(initValue, args...));
}
template <class A, class B> inline bool chmax(A &a, const B &b) noexcept {
return b > a && (a = b, true);
}
template <class A, class B> inline bool chmin(A &a, const B &b) noexcept {
return b < a && (a = b, true);
}
template <class A, class B> inline common_type_t<A, B> min(const A &a, const B &b) noexcept {
return a < b ? a : b;
}
template <class A, class B, class... Args>
inline common_type_t<A, B, Args...> min(const A &a, const B &b, const Args&... args) noexcept {
return moke::min(a < b ? a : b, args...);
}
template <class A, class B> inline common_type_t<A, B> max(const A &a, const B &b) noexcept {
return a > b ? a : b;
}
template <class A, class B, class... Args>
inline common_type_t<A, B, Args...> max(const A &a, const B &b, const Args&... args) noexcept {
return moke::max(a > b ? a : b, args...);
}
template <class A, class B> inline common_type_t<A, B> diff(const A &a, const B &b) noexcept {
return a < b ? b - a : a - b;
}
} // namespace moke
// }}} End Header
namespace moke {
int main_() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout << fixed << setprecision(12);
var(size_t, K, P, R);
var(double, A, B, C);
auto dp = make_v<double>(0, 3, K + 1);
dp[P - 1][0] = 1.;
rep(i, K) {
dp[0][i + 1] = (dp[1][i] * A) + (dp[2][i] * C) + (dp[0][i] * B);
dp[1][i + 1] = (dp[0][i] * A) + (dp[2][i] * B) + (dp[1][i] * C);
dp[2][i + 1] = (dp[0][i] * C) + (dp[1][i] * B) + (dp[2][i] * A);
}
outl(dp[R - 1][K]);
return 0;
}
} // namespace moke
signed main() { // {{{
moke::main_();
return 0;
} // }}}

ステータス

項目 データ
問題 1237 - Swap Game
ユーザー名 もけ
投稿日時 2020-01-07 21:19:54
言語 C++14
状態 Accepted
得点 10
ソースコード長 4262 Byte
最大実行時間 33 ms
最大メモリ使用量 3868 KB

セット

セット 得点 Cases
1 ALL 10 / 10 in*

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
in00-01.txt AC 30 ms 604 KB
1
in00-02.txt AC 26 ms 556 KB
1
in00-03.txt AC 20 ms 384 KB
1
in00-04.txt AC 29 ms 472 KB
1
in01-01.txt AC 15 ms 560 KB
1
in01-02.txt AC 28 ms 520 KB
1
in01-03.txt AC 22 ms 472 KB
1
in01-04.txt AC 17 ms 428 KB
1
in01-05.txt AC 23 ms 640 KB
1
in01-06.txt AC 19 ms 596 KB
1
in01-07.txt AC 25 ms 680 KB
1
in01-08.txt AC 15 ms 640 KB
1
in01-09.txt AC 20 ms 592 KB
1
in01-10.txt AC 22 ms 548 KB
1
in01-11.txt AC 32 ms 632 KB
1
in01-12.txt AC 33 ms 456 KB
1
in01-13.txt AC 18 ms 536 KB
1
in01-14.txt AC 24 ms 616 KB
1
in01-15.txt AC 24 ms 560 KB
1
in01-16.txt AC 25 ms 488 KB
1
in01-17.txt AC 20 ms 828 KB
1
in01-18.txt AC 32 ms 620 KB
1
in01-19.txt AC 23 ms 560 KB
1
in01-20.txt AC 28 ms 636 KB
1
in01-21.txt AC 22 ms 656 KB
1
in01-22.txt AC 20 ms 612 KB
1
in01-23.txt AC 19 ms 572 KB
1
in01-24.txt AC 21 ms 528 KB
1
in02-01.txt AC 22 ms 3684 KB
1
in02-02.txt AC 26 ms 3704 KB
1
in02-03.txt AC 23 ms 3728 KB
1
in02-04.txt AC 24 ms 3748 KB
1
in02-05.txt AC 30 ms 3768 KB
1
in02-06.txt AC 27 ms 3788 KB
1
in02-07.txt AC 20 ms 3688 KB
1
in02-08.txt AC 22 ms 3708 KB
1
in02-09.txt AC 20 ms 3724 KB
1
in02-10.txt AC 19 ms 3748 KB
1
in02-11.txt AC 19 ms 3772 KB
1
in02-12.txt AC 26 ms 3792 KB
1
in02-13.txt AC 20 ms 3808 KB
1
in02-14.txt AC 30 ms 3832 KB
1
in02-15.txt AC 21 ms 3848 KB
1
in02-16.txt AC 26 ms 3868 KB
1
sample01.txt AC 18 ms 560 KB
sample02.txt AC 15 ms 640 KB
sample03.txt AC 23 ms 3796 KB