C++の練習を兼ねて, AtCoder Beginner Contest 185 の 問題C (Duodecim Ferra) ~ 問題D (Stamp) を解いてみた.
■感想.
1. 久しぶりに, 解説見る前に, AC版まで到達できたと思う.
2. 時間を見つけて, 引き続き, 過去問を振り返っていきたいと思う.
本家のサイト AtCoder Beginner Contest 185 解説 の 各リンク を ご覧下さい.
■C++版プログラム(問題C/AC版).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// C++(GCC 9.2.1) #include <bits/stdc++.h> using namespace std; using LL = long long; #define repex(i, a, b, c) for(int i = a; i < b; i += c) #define repx(i, a, b) repex(i, a, b, 1) #define rep(i, n) repx(i, 0, n) #define repr(i, a, b) for(int i = a; i >= b; i--) int main(){ // 1. 入力情報. int L; scanf("%d", &L); // 2. L から 11 箇所 を 選択する場合の数は? LL ans = 1; repr(i, L - 1, L - 11) ans *= (LL)i, ans /= (LL)(L - i); // 3. 出力. printf("%lld\n", ans); return 0; } |
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 |
[入力例] 12 [出力例] 1 ※AtCoderテストケースより [入力例] 13 [出力例] 12 ※AtCoderテストケースより [入力例] 17 [出力例] 4368 ※AtCoderテストケースより [入力例] 200 [出力例] 366461620334848584 |
■C++版プログラム(問題D/AC版).
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 |
// C++(GCC 9.2.1) #include <bits/stdc++.h> using namespace std; #define repex(i, a, b, c) for(int i = a; i < b; i += c) #define repx(i, a, b) repex(i, a, b, 1) #define rep(i, n) repx(i, 0, n) #define repr(i, a, b) for(int i = a; i >= b; i--) #define pb push_back int a[202020]; int main(){ // 1. 入力情報. int N, M; scanf("%d %d", &N, &M); rep(i, M) scanf("%d", &a[i + 1]); a[M + 1] = N + 1; // 2. sort. sort(a, a + M + 2); // 3. ハンコのサイズは? int l = 2020202020; vector<int> v; rep(i, M + 1){ int d = a[i + 1] - a[i] - 1; if(d) v.pb(d), l = min(l, d); } // 4. 使用回数は? int ans = 0; for(auto &p : v) ans += (p / l) + (p % l != 0); // 5. 出力. printf("%d\n", ans); return 0; } |
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 |
[入力例] 5 2 1 3 [出力例] 3 ※AtCoderテストケースより [入力例] 13 3 13 3 9 [出力例] 6 ※AtCoderテストケースより [入力例] 5 5 5 2 1 4 3 [出力例] 0 ※AtCoderテストケースより [入力例] 1 0 [出力例] 1 ※AtCoderテストケースより [入力例] 987654321 100 28236443 33381580 108649337 75307748 75659655 88237892 78350077 119629838 37058097 84096146 22887934 36176283 47864410 92258208 63479197 89659219 26623626 70073299 110555782 78350406 42191704 7092637 122342313 113520676 45480598 3809412 115370579 7213644 49218465 84199151 42805970 97776354 111981516 53999129 102678442 75723999 19075787 27631495 67427322 69686784 102142450 97949512 24919742 2394962 101978410 94223599 3570583 69930066 70029434 26501548 102893790 83832086 49044076 10166969 93395229 25320170 105544778 98992839 73799963 104517718 93143065 43637702 28058518 70408581 98457753 82687789 1506935 38684104 95051438 9945829 15121341 58233682 72505648 97543534 109438759 79136344 71012815 4120477 87201774 44634904 66144056 63986083 96072228 59927284 41665755 34820680 71617850 11363207 68925653 36605804 49931443 79217714 62832477 56687456 116234014 25981994 86606525 89878445 75092035 101007766 [出力例] 3011193 |
■参照サイト
AtCoder Beginner Contest 185