「AtCoder Beginner Contest 148」に出た
tags: 競技プログラミング
コンテストへのリンク
https://atcoder.jp/contests/abc148/tasks
感想
- 早解き回(?)
- つまんねー
A問題
https://atcoder.jp/contests/abc148/tasks/abc148_a
6-a-b
でもおk
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define rep(i, n) for (ll i = 0; i < (ll)n; ++i) static const int dx[4] = { 0, 1, 0, -1 }; static const int dy[4] = { 1, 0, -1, 0 }; static const char dir[4] = { 'u', 'r', 'd', 'l' }; static const ll INF = 1 << 21; static const ll MOD = 1e9 + 7; signed main() { int a, b; cin >> a >> b; rep(i, 3) { if (i + 1 != a && i + 1 != b) { cout << i + 1 << endl; return 0; } } return 0; }
B問題
https://atcoder.jp/contests/abc148/tasks/abc148_b
S
とT
を交互に出力する
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define rep(i, n) for (ll i = 0; i < (ll)n; ++i) static const int dx[4] = { 0, 1, 0, -1 }; static const int dy[4] = { 1, 0, -1, 0 }; static const char dir[4] = { 'u', 'r', 'd', 'l' }; static const ll INF = 1 << 21; static const ll MOD = 1e9 + 7; signed main() { int N; string S, T; cin >> N; cin >> S >> T; rep(i, N) { cout << S[i] << T[i]; } cout << endl; return 0; }
C問題
https://atcoder.jp/contests/abc148/tasks/abc148_c
- 最小公倍数を求める
- まずは
A
とB
の最大公約数を求めて,A
とB
の積から割る
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define rep(i, n) for (ll i = 0; i < (ll)n; ++i) static const int dx[4] = { 0, 1, 0, -1 }; static const int dy[4] = { 1, 0, -1, 0 }; static const char dir[4] = { 'u', 'r', 'd', 'l' }; static const ll INF = 1 << 21; static const ll MOD = 1e9 + 7; ll A, B; signed main() { cin >> A >> B; cout << A / __gcd(A, B) * B << endl; return 0; }
D問題
https://atcoder.jp/contests/abc148/tasks/abc148_d
- これは左から見て
1, 2, ...3
となっている部分を探せばよいです
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define rep(i, n) for (ll i = 0; i < (ll)n; ++i) static const int dx[4] = { 0, 1, 0, -1 }; static const int dy[4] = { 1, 0, -1, 0 }; static const char dir[4] = { 'u', 'r', 'd', 'l' }; static const ll INF = 1 << 21; static const ll MOD = 1e9 + 7; int N; signed main() { cin >> N; vector<int> a(N); rep(i, N) { cin >> a[i]; } int cnt = 1; rep(i, N) { if (cnt == a[i]) { cnt++; } } if (cnt != 1) { cout << N - cnt + 1 << endl; } else { cout << -1 << endl; } return 0; }
E問題
https://atcoder.jp/contests/abc148/tasks/abc148_e
- 解けなかった(完)
次回への反省
- 過去問でもっと典型問題に触れるべきだと思った