C++の練習を兼ねて, AtCoder Regular Contest 046 の 問題A (ゾロ目数) ~ 問題B (石取り大作戦) を解いてみた.
■感想.
1. 難しく感じたが, 問題A, B について, 何とかAC版となった.
2. 時間を見つけて, 引き続き, 過去問を振り返っていきたいと思う.
本家のサイトARC 046 解説をご覧下さい.
■C++版プログラム(問題A/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 |
#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 main(){ // 1. 入力情報. int N; scanf("%d", &N); // 2. ゾロ目の桁数 と ゾロ目の数字は? int q = (N - 1) / 9 + 1, r = (N - 1) % 9 + 1; // 3. ゾロ目を構成. string ans = ""; rep(i, q) ans.pb('0' + r); // 4. 出力. printf("%s\n", ans.c_str()); 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 38 |
[入力例] 1 [出力例] 1 ※AtCoderのテストケースより [入力例] 11 [出力例] 22 ※AtCoderのテストケースより [入力例] 50 [出力例] 555555 ※AtCoderのテストケースより [入力例] 46 [出力例] 111111 [入力例] 123 [出力例] 66666666666666 [入力例] 777 [出力例] 333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 |
■C++版プログラム(問題B/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 |
#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--) int main(){ // 1. 入力情報. int N, A, B; scanf("%d %d %d", &N, &A, &B); // 2. 判定. bool ok = false; if(A >= N) ok = true; if(A == B){ int r = N % (A + 1); if(r) ok = true; } if(A > B) ok = true; // 3. 出力. printf("%s\n", ok ? "Takahashi" : "Aoki"); 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 38 39 40 41 42 43 44 45 |
[入力例] 5 3 3 [出力例] Takahashi ※AtCoderのテストケースより [入力例] 4 3 3 [出力例] Aoki ※AtCoderのテストケースより [入力例] 5 3 2 [出力例] Takahashi ※AtCoderのテストケースより [入力例] 1000000000 1000000000 1 [出力例] Takahashi ※AtCoderのテストケースより [入力例] 123876 123 123 [出力例] Aoki [入力例] 313687 314 314 [出力例] Takahashi |
■参照サイト
AtCoder Regular Contest 046